Vim を使う理由

Vim は、明らかに設定が Visual Studio Code などの最近出てきたテキストエディタに比べて面倒くさい。 設定を弄ぶっているだけで、数時間が過ぎてしまうこともある。 コードを書くことよりも、Vim の設定を書いている時間の方が長い日もある。

Vim を使い始めたのは、Vim を使っている様子が格好良く見えたからではあるが、利点を考えてみた。

初めに、開発環境としての Vim は、総合開発環境 (IDE) と比べると貧弱で弱い。 もちろん、OniVim などのようにプラグインをもりもりに追加すればIDEと同程度の機能をつかえるようにできる。 しかし、その設定に時間をかけるよりも明らかにIDEの使い方を覚えたほうが短い学習時間で使えるようになると思う。 また、OSをまたいでつかえるかに関しても、最近の IDEテキストエディタの多くは、ブラウザ上でも使用できたり、Windows版に加えて、Linux版、Mac OS版も提供されている。 なので、この利点は少なくなってきているように思える。 キーバインドに関しては、どのツールを使っても VimEmacsキーバインドをエミュレートするプラグインは大体あるので、操作方法を差はあっても共通化できる点は利点は残っていると思う。

私は、Unix哲学にあるような「一つのことをうまくやる」ができるツールであることをツールを選ぶ上で重要視している。 それは、自分がある一瞬にできる作業は一つしかないのだから、使うツールも一つのことを確実にやれるものであってほしいという要望からきている。 なので、普段のコーディングでもファイルをまたいだ検索は、grep を使うことが多いし、gitは termianl 上から使ってしまう。 ただ、何でもテキストでいいかというと限界は感じていて、デバッガーなどはGUIで操作がしたい。 gina や docker.vim を見ていると、共通のユーザー・インターフェースとしての Vim の力を感じる。

他には、Vim はウィンドウの分割とサイズの変更、位置の移動がキーボードだけで操作できるところがいい。シェルで作業がしたくなったら:termを打てばいいし、広く見たくなったらCtrl+w + を打てばいい。いらなくなったら気軽にウィンドウを閉じられる。 起動に時間がかからないからやれることだと思う。

自分のコーディングのスキルに合わせて、VIm の設定ファイルを書き足す、有名なプラグインを使いたいから、その技術を勉強してみるのように、一緒に成長していけるところもよい。 実際、自分がGo言語をさわり始めたのは、VIm conf 2018の発表を聞いてgocodeを使いたくなったからである。

いろいろ書いたが、最終的には Vim を使うのが楽しいから Vim を使っているに尽きる。 完全にポエムになってしまった。。。