さめたコーヒー

kbaba1001's blog.

spacemacsをはじめた

spacemacs.org

長年プログラムを書いてきたが、 emacsvim には関わらないように生きてきたつもりだった。

前職ではエディタハラスメントがしばしばあり、emacsvimも使わない者は迫害されがちだった。 僕は当時 Sublime Text を使っていたが、そんなエディタで仕事ができるのかと言われた。 テキストファイルの末尾に改行を入れる設定がデフォルトで FALSE になっていることをdisられたり、 ターミナルで動作しないことを素人くさいとみなされることもあった。

だが僕は emacsvimプラグインとか変なショートカットとかを自慢されるのが嫌だったし、 そもそもターミナルでコードを書くのがそんなに好きでもなく、 コピーとかペーストとかは Ctrl + c や Ctrl + v みたいなよくつかわれるキーでおこないたい気持ちが強かった。 vim のモードという概念は未だに好きになれず、 emacs のよくわからないショートカットはやはり嫌いだ。

Sublime Text 2 , 3 を使った後、 atom に変え、 最近は VS Code を使っていた。 Sublime Text は良いエディタだったが、いつまでたっても Linux 環境での日本語入力に対応してくれなかったし、プラグインをたくさん入れないと使い勝手が悪かった。 atom が登場して、 Sublime Text を使う理由があまりなくなって切り替えた。 VS Code は画面の横分割が実装されてからなんとなく移行した。 特別 atom に不満はなかったが、 coffee script で書かれた設定などがややわかりづらかった。

なぜ spacemacs をはじめたのか。

VS Code で Clojure のコードのデバッグが出来なかったからだ。

VS Code はコンパクトな IDE みたいなノリがあって、デフォルトで git やデバッガーが使える。 ただ Clojureデバッグを VS Code でやるにはプラグインが必要なのだが、これがうまく動かない。

github.com

issueも放置されがちのようだし、頑張って自分で直すという選択もあるけど、よくわからないからやめた。

LightTableNightCode も試してみたけど、エディタとしての能力が低いように感じた。

Clojure を書いている人たちはだいたい emacsintelliJ をつかっているようだ。

試しに intelliJ をインストールしてみたけど、なぜか僕の使っているキー配列: pianist と相性が悪いようだった。

github.com

このキー配列はスペースキーを Modifier キーとすることで、ホームポディションから手を動かすことなくほぼすべての文字を入力できるようになっている。 僕が Sublime Text などのエディタを使っていてもカーソル移動に困らないのはこのキー配列を作ったからだ。 これは Xmodmap で設定しているから、X 上で動かしているアプリならだいたい使える。 エディタを変えるたびにカーソル移動の方法まで変えたくないのだ。

intelliJだとこのスペースに割り当てている Mode Switch というキーがうまく動かなかった。原因はよくわからないが、たまにこういうことがある。設定を変えたらうまく出来たかもしれないけど、ちょっとやる気がなくなった。

残る選択肢は emacs だ。

emacs か...。

emacs .

emacs .

え、まじで?

2018年にもなって emacs ?

もういい加減おっさんしか使ってないであろう emacs ? 周囲のプログラマを見ても Vim を使っている人は多いけど、 emacs を使ってるのは年齢が高めだ。

あの薄い黄色い画面で C-x とか M-x とか押すのか...? (C-f とか C-p とかは押さないにしても)

さて、そろそろマサカリが怖くなってきたからやめよう。 emacsvim の悪口をネットに書くことは自宅に放火をされかねない危険な行為だ。 僕はやはり今でも関わりたくないと思っているが、 emacsvim も宗教であり狂信的な信仰者が多いことも事実だ。 それに間違いなくよいソフトウェアだ。多くのプログラマに支持され続けているというのは偉大だ。

2018年にちゆ12歳が YouTuber をはじめたのだから、僕が emacs をはじめてもいいはずだ。 既に僕は Clojure という宗教、つまり Lisp という宗教をはじめており、 Lisp 教徒が emacs をはじめるのはごく自然なことだ。 なんだか Lisp エイリアンの鼻で操られているような気持ち悪さがあるが、それでも VS Code で Clojure を書き続けるのはやや苦しいということがわかり始めていた。

だがやはり emacs にごりごりプラグインを入れて、ショートカットをいくつも覚える気にはなれなかった。 もうあまりエディタに設定を書きたくないのだ。 Sublime Text を使っていた頃はめちゃくちゃ長い設定ファイルを使っていたが、今使っている VS Code にはほとんど設定を書いていない。 プラグインもほとんど入れてない。 VS Code はデフォルトの機能が多いこともあるが、エディタの設定をいじくり回すことを昔ほど楽しいと思えなくなってしまった。 別にカーソル移動がめちゃくちゃ快適に出来なかったとしてもプログラムは問題なく書くことができるし、 マイナーなショートカットを覚えるのに苦労したり、プラグインのバグを踏んだりするくらいなら、 そういうのを全部取っ払って、多少愚かで冗長でもわかりやすい方法を選択するようになっていた。

昔はゴリゴリ設定しまくって「俺だけの最強のエディタ!」みたいなの作るのが楽しかったけど、最近はもうタダ疲れるだけだ。

.

.

.

さて、話を spacemacs に戻そう。

spacemacs は emacsプラグインだが、 ~/.emacs.d をまるごと置き換えるので emacs とは別のエディタと考えてもいいと思う。

そもそもデザインが違う。 ( 公式サイト から引用)

http://spacemacs.org/img/screenshots/ss1.png

今風で格好いい。

普通の emacs はこれだ↓ ( 公式サイト から引用 )

https://www.gnu.org/software/emacs/images/teaser.png

見た目は重要だと思う。一日中みている画面なわけだし。 僕はemacsに対して消極的だったが、このデザインを見て使ってみようと思った。

次に、 spacemacs はデフォルトで大量のプラグインがはいっているから自分で色々設定する必要がなかった。 zsh を使ってる人は oh-my-zsh みたいなものだと思ってもらえばいい。 プラグインの塊だしショートカットも置き換えられているから、もはや emacs とは別物である。 数日 spacemacs を使っているが、M-x や C-x のようなキーをほとんど押してない。

spacemacs はその名の通り、スペースキーをhot key として使うように設計されている。 また、 evil (emacsvimキーバインドを使えるようにするプラグイン)をベースに作ってあるので、基本的に vim のように使うことができる。

公式サイトにも

The best editor is neither Emacs nor Vim, it's Emacs and Vim!

とあるように、EmacsVim を合体させたようなエディタだ。

最強と最強をあわせれば超最強になれる、みたいなノリを感じる。

実際結構使いやすい気はする。 僕みたいな EmacsVim でコードを書いてこなかった人間でも、ある程度触れば仕事のコードかけるくらいにはなった。

キーボード・ショートカットも山ほどあるのだが、 Space + f + s でファイル保存みたいに、比較的覚えやすくなっているし、 一応どのキーがどういう機能なのかという説明も表示される。 (この説明文というか関数名がわりとわかりづらいように感じる...)

ドキュメントもあるので、これを見ながら使っている。

github.com

とはいえ、やはり emacsvim 特有の考えや操作にまだ慣れない。 spacemacs は emacsvim を魔合体してつくられたキメラのようなエディタなので、機能がやたらめったら多くて混乱する。 似ているけど微妙に違う機能とかもあるし、 emacsvim 使いにとっては常識という機能は spacemacs のドキュメントには書かれていないからググりづらいというデメリットもある。 ショートカットもやはり覚えないと使いづらいから、 VS Code の command palette に甘えていた僕としてはややつらい。

VS Code であれば自然に出来ていたことが出来ないのはややストレスではあるが、それでも spacemacs からエディタとしての強力さをひしひしと感じるのでしばらく使ってみようと思う。

脳が徐々にカッコ (((((((((( )))))))))) に侵食されているような気がする