ある Vim 使いの告白: Vim-Latex ユーザだった俺はなぜ Winshell 3.3x + KeyVi に浮気したか

男は、Latex ドキュメントを編集するために、Vim-Latex というプラグインを導入した Vim を使っていた。しかしある日、彼は WinShell というかつて使っていた Latex IDE に乗り換えてしまう。

彼はなぜ Vim から離れたのか。今回は、それを探っていく旅である。

ドメイン特化の IDE はやっぱり便利

WinShell は Latex IDE であり、以下のような機能を備えている。

  • 基本的なエディタ機能
  • シンタックスハイライト
  • 多言語対応
  • プロジェクト(複数ファイル)管理
  • スペルチェック
  • GUI による Latex コマンド挿入
  • GUI によるコンパイル・ビュー実行
  • コンパイルログの整形表示
  • エラー行へのジャンプ
  • ToDo 管理

私は以前、バージョン 3.2 を使っていたのだが、最近バージョン 3.3 からさらに強力な機能(一番の目玉は Latex コマンドのオートコンプリート機能)が追加され、いっそう便利になったことを知り、再び WinShell に舞い戻ってきた。

上述した機能のいくつかは Vim-Latex *1などでも実現できる。しかし、他の Vim プラグインとのキーバインド競合や、よくわからないエラーの発生、マニュアルと違う謎動作などに悩まされていた*2自分は、Latex という特定領域に特化した IDE の扱いやすさ・安定性に惹かれたわけだ。

Vi キーバインドを他のエディタに持ち込む

Vi のキーバインドに完全に慣れ親しんでいた自分は、長文の編集は Vi のキーバインドが可能なエディタのみで行っていた。そんな自分が WinShell に復帰できたのは、「Windows 上のすべてのアプリケーションにおいて vi like な操作性を提供」する KeyVi の存在が大きい。これによって、WinShell のような別 IDE に移行できたわけだ。

また、Visual StudioNetBeans などの IDE ならば、それぞれに Vi キーバインドを実現するアドオン(プラグイン)が存在している。それらは、KeyVi のような汎用のソフトウェアよりも、より便利な機能をもっているようだ。

余談だが、Vi ではなく Emacs キーバインドの汎用的な実現なら、Xkeymacs がある。こっちも非常に便利なソフトウェアだ。

ひとりの Vim 使いとして、Vim にどう向き合っていくか

Latex や特定のプログラム言語の編集をしたいというとき、Vim 好きの人間には2つの手段が存在する。ひとつは、Vim でそれらを便利に行うプラグインを導入する、または自作すること。もうひとつは、それぞれに特化した IDE を使い、そこで Vi キーバインドを実現するための手法(プラグイン導入など)を考えること。

私は最近、後者の手法をとるようになってきている。WinShell の件は、その一例だ。本格的に特定領域のテキスト編集をする場合は、それ用の IDE を使い、簡単なテキスト編集を Vim で汎用的にこなしている。

理由は様々だ。自分が Vim に求めるものの本質は Vi キーバインドであり、それさえ実現できれば他のエディタ/IDE でも OK であること。Vim でのプラグイン管理がいろいろ面倒になったこと。最新の IDE の機能を使いたいこと。「年を取ると環境設定がどうでもよくなる現象 - bkブログ」や「いまだEmacsをありがたがるのか… | おごちゃんの雑文」に啓発された部分も大きい。

なにか決定的な理由があるというよりも、様々な理由が積み重なってきた結果、というのが実情だと思う。

いずれにせよ、大事なことは、「今の自分にとって必要なものは何か」ということを、虚心坦懐に考えていった結果であるということ。この件に限らず、特定の何かにとらわれることなく、思考を巡らせるようにしていきたい。

*1:および他のプラグインとの組み合わせ。

*2:当該プラグインを深く探って原因を追求するまでの情熱は持てなかった。