Emacsを捨ててEmacsに乗り換えた話
はじめに
この記事はFUN Advent Calender 201822日目の記事です.
今年も書かせていただきます.
お前誰
FUN13期生の雨龍(@prices_over)です.
毎年FUN Advent CalenderのためにWordPressの個人サイトで執筆しています.
都内のWeb系SIerに勤務しています.
主にMicrosoft系の技術(C#, Azureなど)で仕事してます.
昨年の記事
昨年はSwaggerの話をしました.
https://uryu1994wordpress.azurewebsites.net/2017/12/16/swagger-dotnetcore/
アジェンダ
はじめに
僕の使用エディタはEmacsです.Vimは使いません.
しかしこのままEmacsを使い続けることに疑問を持ち始め,別のエディタに乗り換えることを決断しました.それが今年の6月頃の話です.
なぜEmacsの使用に疑問を持ち始めたか?
まぁ色々あるのですが,下記の要因が大きいのでしょう.
- デフォルトだと色々無効にしたりしないと使いづらい
- 一時ファイルの生成無効・コード補完プラグインの導入等
~/.emacs.d/
の管理が厄介- package管理つらい
- 他の環境との設定共有が地獄
次のエディタについて考える
まず前提条件として,VIMは候補に含めませんでした.
一度は考えましたが,いざ使ってみると指が拒絶反応を示して使い慣れてないせいかこれは無理だなとなり,そっと閉じました.
色々検討した結果
結果的にEmacsに落ち着きました.オチにしてはショボすぎたか…
あれ?Emacsってこんなアイコンだっけ?と思う方がいるかもしれませんが,これもEmacsです.正しくはspacemacs
です.
Spacemacsってなんぞや
http://spacemacs.org
Emacsのディストリビューション.
位置付け的にはEmacsのプラグインかもしれませんが,~/.emacs.d/
を丸ごと書き換えてるので,Emacsとは違ったエディタと言ってもいいでしょう.
ちなみにサイトの標語にはこう書いてあります.
The best editor is neither Emacs nor Vim, it's Emacs and Vim!
訳:最高のエディタはEmacsでもVimでもなく,EmacsとVimだ!
… 宗教戦争に疲れたのでしょうか?w
参考:Spacemacsの原則
公式ドキュメントには次のように定義されています.
- Mnemonic : キーバインドの覚えやすさ
- Discoverable : キーバインドの見つけやすさ
- Consistent : 首尾一貫性
- Crowd-Configured : コミュニティ主導の環境設定
Emacsを捨ててEmacsに乗り換える
ここから本題みたいなものですが,EmacsをアンインストールしてSpacemacsをインストールするところまでの手順をまとめました.
環境
Emacsをアンインストール
前提条件として,macOSのデフォルトのemacs
はバージョンが古いため,Homebrew
から落としたemacsを使っていました.
公式の見解ではmacOSの場合は通常のEmacsを使わず,emacs-plus
を使うようなので,その手順に則りまずはEmacsをアンインストールします.
~.emacs.d/
と.emacs
をリネームして退避- 今使っているemacsをアンインストール
$ mv ~/.emacs.d ~/.emacs.d.bak $ mv ~/.emacs ~/.emacs.bak $ brew uninstall emacs
Spacemacsのインストール
まずSpacemacsのベースとなるemacs-plus
をインストールします.
$ brew tap d12frosted/emacs-plus $ brew install emacs-plus --with-spacemacs-icon $ ln -s /usr/local/opt/emacs-plus/Emacs.app /Applications
次にgithubからspacemacsをcloneして~/.emacs.d/
に配置.
$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
これであとはコマンドラインからemacsを起動すればspacemacsが立ち上がるのですが,emacs-plus
はGUIアプリなのでそのまま叩くとGUIが起動してしまいます.
GUIで操作したい!!っていう人はそのままでいいのですが,コマンドライン上で立ち上げたい方はshellのrcファイルとかでエイリアス貼っておくといいでしょう.
alias emacs='emacs -nw'
Spacemacsを起動して初期設定
初回起動するとSpacemacsのロゴが表示され,ウィンドウ下部のミニバッファに初期設定ウィザードが立ち上がると思います.
3つくらいのことを聞かれるのでお好みで選んでください.
編集スタイルの選択
What is your preferred editing style ? -> Among the stars aboard the Evil flagship (vim) On the planet Emacs in the Holy control tower (emacs)
キーバインドはvim
スタイルかemacs
スタイルか
vimスタイルの場合,SPC
で操作,emacsスタイルの場合M-m
で操作する感じになります.
私はemacs
スタイルにしました.
ディストリビューションの選択
What distribution of spacemacs would you like to start with ? -> The standard distribution, recommended (spacemacs) A minimalist distribution that you can build on (spacemacs-base)
フルパッケージ(spacemacs
)かミニパッケージ(spacemacs-base
)か.
できないことがあると困るのでフルパッケージにしました.
補完ツールの選択
What type of completion framework do you want ? -> A heavy one but full-featured (helm) A lighter on but still very powerful (ivy) None (not recommended**
これはどちらが良いかはよくわからかったので,Qiitaの記事を参考にしてivy
にしました
これで設定が完了.
Spacemacsの設定ファイル
初回起動してウィザードの手順を踏むと, ホームディレクトリに.spacemacs
ができているはずです.
いろいろ設定項目がありますが,語るにはこの記事では収まらないのでググれば出てくると思います.
Emacsすごい
ずっとEmacs使っていて,正直イケてないとか設定弄るのこんなにだるいのかとか,使い慣れていくとそう感じてきましたが,Spacemacsに乗り換えたことでその印象が大きく変わりました.
Vimに乗り換えることも一瞬考えましたがこれならしばらく戦えそうです.
Spacemacsによって改善されたこと
- ユーザ設定の記述箇所が1箇所で済むようになった
- 普通のemacsだと
~/.emacs
に書くのか~/.emacs.d/init.el
に書くのかで流派が分かれていた
- 普通のemacsだと
- パッケージ管理が楽になった
- わざわざemacsの設定をゴリゴリ書かなくても使用するlayerを
.spacemacs
に書いて設定読み込みすれば勝手にインストールしてくれる- layerで設定されていないファイルを開くとインストールするかどうかも尋ねてくれる
- 設定ファイルをspacemacsで用意してくれるのでいじる箇所が明確
まとめ
しかし
Emacs最高とか言っておきながら,結局はvscode
の使用率が一番高いかもしれない…