私がVimを使うワケ(vimを学ぶためのサイト4つ)

以下は Michael Trier 氏のブログ Empty Thoughts から2010年12月5日の記事 "Why I Use Vim" を翻訳したものです。また彼は 2008 年頃に Django 関連の Padcast や Screencast を積極的に配信されていた方のようです。

Why I Use Vim
http://michaeltrier.com/2010/12/05/why-i-use-vim/

私が MacVIM をエディタに選んでから2、3年が経ったが、いまだに自分が初心者みたいな気がする。毎日自分のエディタを学び続けているが、Vim のようなエディタに習熟するには、意識的な努力が必要だ。私がそれだけ努力する理由を書こう。

エディタはとてもパーソナルなものだ。プログラミングするときの自分のワークフローに合ってないといけない。ちょっと考えてみればわかるが、テキスト編集の仕方は個人ごとにまったく違っている。私はよく同僚とペアプログラミングをしていて、他人がエディタをどう使っているかを見て、驚くこともあり、時にがっかりすることもある。例を挙げると、削除して挿入をする人もいれば、挿入してから削除する人もいる。タイピングが下手でコピー&ペーストを好む人もいれば、上書きを好む人もいる。

編集の仕方が人によって違うというだけではない。違いは文脈依存なのだ。複数行を削除する編集の仕方は、1行を削除する編集の仕方とまったく異なる。行の真ん中を編集するのと行の先頭や末尾を編集するのも異なる。検索と置換の仕方も大きく異なる。私がこのことを取り上げるのは、自然に編集できるようにカスタマイズができるエディタは一日の中で最も役に立つからだ。他にも素晴らしい代用品 はあるが、私にとって Vim とはそういうエディタだ。

Vim やその他の、高度に設定可能なエディタの負の側面は、実際に恩恵を受けるまで時間を投資する必要があることだ。私には Vim を学びたいと思っている友人が数人いるが、TextMate のようなエディタからスイッチするのに時間を投資しようとしない。
ありがたいことに、 Vim の速度を上げるのに役立つリソースがいくつかある。

  • PeepCode Screencasts - 彼らが提供している Smash Into VimSmash into Vim 2Vim を始めるのに素晴らしいビデオだ。私はこのスクリーンキャストで それ以前は知らなかった Vimの基本を学んだ。これらは秀逸なので何度も見るといい。お金を払うだけの価値が十分にある。
  • VimCasts - Vimの機能を特集した、無料の短いビデオ集。VimCasts は Drew Neil が制作している。プロの手による高品質なトレーニングだ。君の Podcast に追加するのを強くお勧めする。
  • VimScripts - Vimの可能性を拡げるサードパーティプラグインを中心にしたサイトだ。作業を簡単にしてくれるプラグイン時間をかけて探すだけの価値がある。例えば私は、Pythonのコードにエラーがあればハイライトしてくれるプラグインを使っていて、使っていない import 文を探したり PEP8 に従っているか確認できる。コメントを苦労せずに書けるプラグインも使っている。
  • Justin Lilly's Vim Screencasts *1 - 私の良き友人、 Justin Lilly が Vim に関するたくさんのスクリーンキャストを提供している。さらに、彼が書いた Vim: My New IDE と題された記事は Vim で使えるプラグインの優れた紹介だ。

Vim の速度を上げるもう一つのコツは、他の人の設定から始めることだ。私の設定は Github に置いてある。注意してほしいのは、基本的な設定が定着するまでは複雑な Vim の設定を取り入れないでほしいということ。主な理由としては、基本的なビルトインの振る舞いを変えてしまうものがあるからだ。例えば、私の設定では、矢印キーを使ったナビゲーションが無効になっている。もし君がそのことを知らなければ、何が Vim のデフォルト設定なのか、何が変更されているのかを理解できなくなってしまう。

私が Vim を使っていて大きな利点になっているのは、仕事で扱うすべてのプラットフォームで利用できるということだ。サーバー上で設定ファイルを編集しようが .NET のコードを書こうが、編集方法を変える必要がない。

君が上に挙げたリソースを時間をかけてチェックし、 Vim のようなエディタを使うのを検討してくれることを願っている。それは継続的な投資になるが、きっとそれだけの価値がある。

Twitter私をフォローしてくほしい。

*1:リンク先ブログの構成が以前と違うようで、サイトの Home にリンクしています。