エディタはSpacemacsがいいぞ

ぼくは部屋を片付けるとなるとまず最初に要らないものや使わないものを捨てていく派です。

とにかく無駄をなくす事に命をかけてる的なところがあるので、基本的にあんまりゴチャゴチャした感じが好きではありません。

Simple is Best というやつです。

さて、ぼくのメインPCは2015年モデルのMacbook Airなのですが、長いこと使ってると中の設定とか色々ごちゃごちゃしてくるので定期的にmacOSクリーンインストールをしたくなりますよね。

そんなこんなでつい先日macOSクリーンインストールをしました。

で、環境を整えたりしていたのですが、就活とかも色々終わったしこれからは心機一転エディタとかを変えてみようかなと色々模索していたわけです。

結論から言うとSpacemacsはいいぞ、という感じです。

spacemacs.org

なんでSpacemacs?

ぼくがエディタに要求する最低限のこととして

  • 画面分割した際のウィンドウの移動が楽
  • マウスを使わずキーボードだけで完結させたい
  • カスタマイズが容易
  • Lispを書くときはSLIMEが使える
  • Vimキーバインド

という感じです。

これだけ見ると実際そこまでエディタこだわらなくてもいいじゃん的な感じでVSCodeでよくね的な感じなのですが、実は4つ目のSLIMEが使えるというのが結構厄介なアレで、やっぱりLisperとしてはVSCodeは若干難しいところがあるわけです。(実際、前にLisp系のプラグインを入れてみたらものすごくモッサリだったので....)

じゃあEmacsでよくね的な感じなのですが、Emacsキーバインドは小指が痛くなるのと、やっぱりVimのモード変換はスタイリッシュだなぁと思ったりしてて.....

で、そんなこんなでたどり着いたのがSpacemacsです。

Spacemacs is 何

Spacemacsはざっと言えばevilみたいなもので、VimEmacsのちょうど間をとった感じです。

意外と一部から熱狂的な支持を受けていて、もしかしたらVimEmacsのエディタ戦争を収束させうるものなのかもしれません。

qiita.com

特徴として、中身は基本的にはEmacs Lispで書かれているのですがVimキーバインドが使えます。

まあそこらへんの解説とかは他のQiitaの記事を参照してください。

ぼくが今回伝えたいのは、キーバインドがいかに最高かという話です。

キーバインドがすげえ

SpacemacsはキーバインドとしてはEmacsのやつとVimキーバインドが選べるのですが、ぼくはVimキーバインドです。

で、Vimはモード変換をするわけですが、インサートモードへはiで、通常モードへはEscキーです。

ただ、すごいのが通常モード時のスペースキーの使い方です。

こちらをご覧ください。

f:id:komi1230:20190722140028p:plain

スペースキーを押して、このモードからほとんどのことが行えます!!

で、このスペースキーがほんとにすごくて、なんでも行えます。

例えば自分のいるディレクトリのtreeはSPC f tで表示/非表示を切り替えられます。

また、そのtreeへはSPC f Tで移動でき、ファイルにカーソルを合わせてEnterを押せばVimでいう:e {そのファイル}と同じことができます。

他にもウィンドウの分割ができて、各ウィンドウには番号がついているのですが、SPC 1で1番のウィンドウに移動ができたりします。

他にもSPC SPCEmacsのメタキーの役割ができて、パッケージのインストールやSLIMEの起動、minimapの表示などあらゆる行動が起こせます。

ぼく自身、まだまだSpacemacsが使いこなせてないのですが、このスペースキーによる操作というのがほんとに病みつきになるので、個人的にはかなり推してます。

拡張性もなかなかあるぞ

Spacemacsは基本的にはEmacsのアレを受け継いでいるということで、Emacs Lispを使えば設定ファイルのほとんどが書き換えられます。

Pythonプラグインなどの設定もここでいじれるし、起動時のオープニングの設定等もできたり、ウィンドウサイズの変更等、だいたいここらへんでほとんどのことができます。

ぼくは基本的にはCommon Lispばかり書いているのですが、人によってはmarkdownやgitなどのプラグインなども入れてさらに豪華にしているようです。

デメリット

こんな感じで結構Spacemacsを推しているのですが、もちろん完璧ではなくて、ぼくが使ってて唯一ダメなところとして感じるのが少し起動が遅いことです。

ただ、Emacsの文化としてエディタの中に引きこもるというのがあり、そういう意味ではエディタを立ち上げた後はずっとエディタの中で作業し続けるので、あんまり頻繁に立ち上げ直すということはなさそうなので個人的には起動の遅さは気にしていません。

ウィンドウを割って一つをターミナル用としてしまえば問題なさそうですし....

てことでぼくの主観では結構万能なエディタかなって感じです。

導入の云々について

Spacemacsの始め方については色々解説が上がってるので、そこらへんを参考にしてみてください。

GitHubの公式のページの通りにやっていけば素直に導入できかと。

github.com

こちらも参考になります。

qiita.com

SLIMEの導入についてはこちらを参考にしてみてください。

github.com

ちなみにRoswellについてなんですけど、 ros install slime としたときに~/.emacs.d/init.el(load (expand-file-name "~/.roswell/helper.el")) って書いてねってあるんですけど、どうもその方法はうまくいかなくて、Spacemacsが公式でサポートしている通りにSLIMEを導入するのが良さげな感じです。

なのでSLIMEを導入する際は ~/.spacemacs の入れるプラグインのところに common-lisp としておきましょう(デフォルトで入る処理系はSBCLだそうです)

まとめ

Spacemacsはいいぞ。