学生時代に初めてプログラミングを本格的に触り始めたとき、何かエディタを探す必要があった。
研究室からはMacbookが支給されたためMacで良いエディタを探す必要があったが、なかなかしっくり来るものが無かった。XCodeやVisual Studioは複雑でよくわからない。もう少しライトで使い勝手の良いエディタはないものかと考えていた。
ふと、そういえばプログラミングの授業で先生が何かを紹介していたことを思い出した。なんとなく名前もぼんやり覚えていたので、よくわからないけど一旦それを使い始めてみた。
その名も "Emacs" 。
これがすべての始まりだった。
当時はまだ2010年代。オラクルがサンを買収しJavaを手に入れたのが記憶に新しいころ。スマホが徐々に社会に浸透し始めたが、まだKotlinもSwiftも無かったころ。ようやくC++11がリリースされSTLが導入されたころ。それなりにITエンジニアリング周りの裾野は広がってきてはいたが、Emacsはまだまだ使いづらかった。
いや、エディタとしての使い勝手は抜群だった。特にJISキーボードのMacで左手小指の位置にControlがあるという環境においては、すべての操作がホームポジションで完結するというとんでもなく素晴らしい体験だった。なんならMac上(同時はOS X)でもControl + p, n, f, b やControl + a, e でのカーソル移動が使えるため、これだけでMacとEmacsを使う十分な理由になるものだった。
しかし、いかんせん設定が大変だった。
なかなか思い通りにキーバインディングが設定できない。C++の補完が効かない。LaTeXのコンパイルコマンドが効かない。
コーディングよりEmacsの設定と戦っている時間の方が長いのではないか?と思えるほどだった。
しかし当時は学生だったので、本業そっちのけでEmacsと戯れていた。
その後、社会人になっても会社のWindowsにEmacsを入れてCapsLockをControlに変えてなんとか使っていた。
しかし徐々に設定のしんどさが気になってきた。
突然Emacsのバージョンアップに伴って古いパッケージが使えなくなったりする。何か書くべきものがあるからEmacsを開くのに、そのたびにEmacsの設定を更新するというところから始まる。さもなければ、今まで使えていた機能がエラーを吐いて動かない中でなんとかだましだまし使い続けるしかない。
コーディング時はいかに思考をコーディングに使いそれ以外のことに脳のリソースを消費しないかが大切だ。だからエディタは指を通してなるべく高速な経路で脳まで直結しているべきだ。それが、今まで使っていた機能が使えないということは、それをバイパスするための処理を間に挟む必要がある。これはかなりのストレスだった。
だんだんとEmacsには重い設定はせず(せいぜい Control + h で backspace できるくらいで)、1つのちょっとしたテキストファイルを修正するときにしか使わず、プログラミングは別のアプリケーションで行うようになった。
言語特有の設定をせずともデフォルトで補完が効くし、関数の定義元へジャンプできるし、これらが突然壊れることも無い。なんとも快適な環境だった。
もうEmacsなんて使う必要はなくて、最初からきれいにセッティングが済んでいる便利なエディターに乗っかればいい。自分のこだわりでわざわざ苦労する必要なんてなかった。
ただ、どんなエディタを使うにしても、必ずキーバインディングで Control + p, n, f, bでカーソル移動できるようにしたし、Control + a, e で行頭・行末へ移動できるようにもした。Control + k で行末まで削除するようにしたいが、できないこともあった。たいてい Control + k で切り取った内容は Control + y で貼り付けられなくてイライラした。もちろん Control + @ で範囲指定できるものなんてなかった。
ファイル検索や画面分割、ターミナル起動、ファイルのコピーや別名保存。何かをしようとするたびに両手がホームポジションを離れた。ときには(にわかには信じられないことに)トラックパッドにまで手を伸ばして操作する必要があった。なんて非効率なんだろう、と思いながらも、それがそのエディタの使い方ということであれば、それに従って使うしかなかった。
ああ、これがEmacsならなあ。と何度も思った。
Emacsならどの操作もホームポジションで完結できた。やりづらい操作や気に入らない挙動はすべて自分で設定変更ができた。
他のエディタを使うたび、気づけば必ずそこにはEmacsの影があった。
どうしてもEmacsが忘れられなかった。
あんなに設定が大変で、時間を取られて、やっとできたと思ったら突然使えなくなり、私のことを振り回す。そんなEmacsが嫌になったはずなのに。
気づいたら出会うエディタすべてに対してEmacsと比較をしてしまい、自分の好みの設定をするつもりで単にEmacsの真似をして、できないことにイライラして、Emacsほど軽快さや柔軟さが無いなと感じて、そのエディタを評価してしまっていた。
結局、自分が欲しいものはEmacsそのものだった。Emacs以外にEmacsであるものなんてあるはずがなかった。
それに気づくまでにひどく時間がかかってしまった。
Emacsも23, 24だったのが、もうすぐ29が出ようとしている。
私は自分の未熟さを棚に上げて、Emacsに振り回されるのは嫌だと言って、長い間、Emacsにとても失礼なことをしてしまった。
本当に申し訳ない。私もまだまだ若かった。
けど今は、Emacsのすべてを受け入れて、うまく付き合っていける気がする。
もしEmacsが許してくれるなら、こんな私だけど、ここから再スタートさせてほしい。
改めてよろしくお願いします。
ということで、まずは最近使っている言語に対応するところからだ。あー、そうか、Language Serverを別途入れないといけないのか。あと最近の流行りのパッケージの調査もしておかないといけない。あれ、MarkdownやOpenAPIとかって、Emacs上でプレビューできるのか…?
…うーん、やっぱり、Emacsはしんどそうだ。