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は候補に含めませんでした.
一度は考えましたが,いざ使ってみると指が拒絶反応を示して使い慣れてないせいかこれは無理だなとなり,そっと閉じました.

色々検討した結果

spacemacs

結果的に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でもなく,EmacsVimだ!

宗教戦争に疲れたのでしょうか?w

参考:Spacemacsの原則

公式ドキュメントには次のように定義されています.

  1. Mnemonic : キーバインドの覚えやすさ
  2. Discoverable : キーバインドの見つけやすさ
  3. Consistent : 首尾一貫性
  4. Crowd-Configured : コミュニティ主導の環境設定

Emacsを捨ててEmacsに乗り換える

ここから本題みたいなものですが,EmacsをアンインストールしてSpacemacsをインストールするところまでの手順をまとめました.

環境

Emacsをアンインストール

前提条件として,macOSのデフォルトのemacsはバージョンが古いため,Homebrewから落としたemacsを使っていました.
公式の見解ではmacOSの場合は通常のEmacsを使わず,emacs-plusを使うようなので,その手順に則りまずはEmacsをアンインストールします.

  1. ~.emacs.d/.emacs をリネームして退避
  2. 今使っている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-plusGUIアプリなのでそのまま叩くと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の設定をゴリゴリ書かなくても使用するlayerを.spacemacsに書いて設定読み込みすれば勝手にインストールしてくれる
    • layerで設定されていないファイルを開くとインストールするかどうかも尋ねてくれる
  • 設定ファイルをspacemacsで用意してくれるのでいじる箇所が明確

まとめ

  • 宗教戦争はもう終わった
  • Emacsの時代も終わった
  • これからはSpacemacsの時代
  • Spacemacs最高

しかし

Emacs最高とか言っておきながら,結局はvscodeの使用率が一番高いかもしれない…

参考文献