転職を機に perl を書くようになって以来、vim 一本で開発のすべてを行っています。
かつては、何と java を vi で書いていたこともあったし、運用でしばしば vi を使う機会があったので、基本的な操作は身に付いていたんですが、本格的に vi を使うようになって色々と便利な技があることを知ったのでシェアメモ。
まずは、文字コード変換。
:e ++enc=shift_jis :e ++enc=iso-2022-jp :e ++enc=euc_jp
これができないと、そもそも vim 一本で開発することができないという話。テンプレ編集やメール系の開発するときに便利すぐる。
続いて画面分割
:sp
これで画面が上下に分割して編集できます。画面を切り替える場合は、Ctrl+w を2回。プログラムを書いていて、「あ、これって他はどうしてるんだっけ?」と思って一時的に参照したい場合に便利です。
現在カーソルのある画面を閉じる場合は、
:close
現在カーソルのある画面以外をすべて閉じて、通常モードに戻す場合は、
:only
diff のように行単位で違いを眺めながら編集したい場合は、
Ctrl+w → v
これで垂直分割になります。純粋に 2ファイルの diff を見るのならば、vimdiff で OK なんですが。
分割したそれぞれの画面で別のファイルを表示するには、その画面に切り替えて、
:e ファイル名
これで、新しいファイルの編集モードに入れます。
ファイルを開くという意味では、編集中のファイルにあるパスにカーソルを合わせて
gf
これで、そのパスにあるファイルを開くことができます。これ、ヤバイです。芋づる式にプログラムを編集できます。grep 結果をファイルにリダイレクトしておいて、あとで開いて順番に見ていきながら編集する場合に重宝しました。
画面分割は、「screen 使えば良いんじゃないの?」という話もありますが、ちょっとした比較には vim の画面分割はダントツに力を発揮します。特に、ノートPCやサーバのコンソールのように、小さい画面で頑張らないといけない時なんかは、知っていると知らないとでは作業効率に雲泥の差が出ますよ、ホントに。
ということで便利技をいくつか書いてきましたが、要するに「java × eclipse の開発は便利で良かったなぁ」ということです。 vim でどんなに頑張っても、さすがにアレにはかなわないですね。