Goodbye Vim?

前記事の続き。 Vim に関しては Mac よりも長い付き合いである。

主にコーディング用のエディターとして GVim をメインに利用してきたが、これまで新しいエディターが出ては試して、そして結局 GVim に戻っての繰り返しだった。

ここであえてコーディング用としているのは、コーディング用とライティング用とでエディターを使い分けているからである。

  • コーディング用
    • プログラミング等
    • 全体を眺めて考えたりする時間が長い
    • 新規入力より編集が多い
    • 日本語の入力が少ない
  • ライティング用
    • メール・議事録・メモ等
    • 思いついたらすぐ入力
    • 新規入力が多い
    • 日本語の入力が多い

ちなみに IntelliJ IDEAEclipse などの IDE はエディターとして含めていない。IDE とエディターは別物だ。

モダンエディターの登場

Vim / Emacs 以外の選択肢としてのモダンエディター的な存在は TextMate が走りだったと記憶している。 イケてる Web エンジニアは Mac 使って Ruby on Rails でアジャイル開発していて、動画で紹介されるチュートリアルではなにやらモダンでいかにも便利そうなエディターを華麗に操り、このエディターとフレームワークさえ使えば誰もが幸せになれるのではないかと世界中のエンジニアが思ったものだが、その時のエディターが TextMate だった。

以降、登場したモダンエディターとしては以下が代表的なものとして挙げられるだろう。

どれも Vim に変わる存在としての可能性を探るために、それなりに使っては評価してきたが、1か月も続かないものばかりだった。リリース当初だけの評価ではなく、それぞれ継続的にメジャーバージョンアップが行われる度に乗り換えては評価してきた。

コーディング用のエディターに求めること

ここで僕がコーディング用のエディターに対して求めることを整理しておくと、以下がポイントとなる。

  • Vim キーバインド
  • 軽量さ・軽快さ
  • クロスプラットフォーム
  • 拡張性
  • 将来性

そう、僕が一番大切にしているのは Vim ライクな操作ができるかどうかであって、結局 Vim からは脱却できていないのだ。

なぜ Vim を使い続けてきたかというと一番快適に Vim キーバインドが使えるエディターは Vim だったというだけの理由である。次点で、軽量さ・軽快さ・クロスプラットホームをクリアーしているからだ。 拡張性・将来性に関しては Atom / VS Code あたりの方が高くみえるし、そうみえるから乗り換えようとしている。

最近のモダンエディターは質の差はあれど Vim ライクなキーバインドを実現するプラグインは大抵存在する。Atom に関してはどうも軽量さ・軽快さに欠けていたので、ひととおり条件をクリアーしてそうなエディターとして VS Code に可能性を求めることにした。(Sublime Text 3 に関しては最近評価できてないのでもしかしたら可能性あるかもしれないけど、現時点ではあまり興味ない)

Visual Studio Code の所感

まず軽量さについては、Vim のそれには圧倒的に劣るが他のモダンエディターに比べてもかなり軽い部類だ。拡張性については Vim に比べて用意されている UI コンポーネントが多いこともあって UI 的な表現力が高く、またそれを TypeScript で書けるのは Vim script と異なり馴染みがあってとっかかりやすい。 Vim キーバインドについては VSCodeVim がなかなか頑張っていて他エディターの Vim プラグインより出来がよい方だと感じたし、割と違和感なく使えるものになっている。

総合的な所感としては、Vim を超えているというよりは Vim が無くても生きていける環境がようやくできたという感触。一応コーディング用のエディターに求めるものはひととおり揃っていて、実際ここ1か月くらいはほぼ VS Code だけで生きていけている。

Visual Studio Code の微妙な点としては、

  • 日本語の単語区切りに対応していない
  • VSCodeVim について
    • undo / redo の挙動がおかしい
    • Multi Cursor が考慮されてない

などがあって割とツラいのだがなんとかしのいでいる。

いざとなったら Open in Vim というプラグインがあるのでいつでも本物の Vim に逃げることはできる。

なので、暫く VS Code メインで使っていこうとは思っているが Vim も引き続き使っていくことにはなりそうだ。

Vim は不滅だ。

ライティング用のエディターについて

かなり特殊な例なのかもしれないけど、僕はコーディングの時は Vim、メール・メモなどの文章を書く時は Emacs を使いたいのだ。 これもまた本物の Emacs である必要はなくて、Emacs キーバインドが使えれば良いだけなんだけど、これに関しての話もいろいろあるのでまた別記事で書きたいと思う。