はじめに
恐怖のエディタ、Vim。
僕はこの間までずっとサクラエディタを愛用していましたが、最近Vimを使うようになりました。
ええ、Vimです。あのVimです。Viでもいいけど。
Vim・・・使いこなしている人はそれだけで玄人っぽく見られる伝説のエディタ。
実際にVimを使えばすさまじいスピードのコーディングが可能になる。(らしい)
しかしそんな憧れだけで手を出しても大半の技術者は全く手に負えず、すぐに尻尾を巻いて元のエディタに舞い戻ってしまう恐怖のエディタ。
それがVimである。
・・・はい、僕の中でVimやViのイメージはそんな感じでした。
実際、Unix/Linuxマシンのターミナル上で何度か(いやいや)使ったことがありましたが、まあ扱いにくいのなんのって。
「カーソルは十字キーで動くけど、どうやって入力するの? 」
「えっ? "i"を押せ? 」
「入力が終わったらESC? なんでそんなことすんの?」
「コードを入力・・・あれ?なんかおかしいぞ?なんか入力できてない!?(←通常モードのままでコードを打ち込んだ)」
「もうあかん・・・。Windowsマシンに持ってきて、いつものサクラエディタで編集してから上書きコピーしようっと。そっちの方が絶対速い!」
・・・そんな感じの使い方しかできなくて、できれば一生避けて通りたいエディタでした。
(とか言いながら、「使えたらちょっとカッコいいかも」みたいな憧れはやっぱり片隅に抱えてたんですけどね〜。)
Vimを使おうと思ったきっかけ
実際、プログラマは長年やってるんですが、結構Windows上で開発することが多くて、Unix/Linuxのターミナルを触ることがほとんどなかったんです。
だから無理して覚える必要もないし、前職の頃から使っているサクラエディタで十分便利だと考えていました。
ところが、このところUnix/Linuxのターミナルを使わなきゃいけない案件がちょこちょこやってきて、毎回Windowsで編集というのも非効率に思えてきました。
「う〜ん、そろそろ覚えないとヤバいなあ。やってみるか、Vim・・・。(そして玄人っぽいプログラマにステップアップしてみるか♪)」
ということで、Vimを本格的にマスターする決心をしました。
Vimに乗り換えるまでの流れ
アウトラインだけまとめるとこんな感じです。
- チュートリアルサイトを参考にして手を動かす
- チートシートをプリントアウトする
- 動画でVimの機能をチェックする
- チートシート(Version 1.0)を完成させる
- Vimを実践で使う
- Vim標準のチュートリアルも活用する
- Vimをカスタマイズする
- コマンドを復習する
- さらに情報を収集する
- 定期的に復習を繰り返す
詳細は以下で説明します。
1. チュートリアルサイトを参考にして手を動かす
まず、以下のサイトをチュートリアルにして、実際にVimを動かしてみました。
Big Sky :: Learn Vim Progressively
なるほど、確かにサクラエディタにはない機能がたくさんあるぞ、ということは確認できました。
ただし、あくまでチュートリアルに従うだけなので、果たして実業務で使うことがあるのかどうか、確信はありませんでした。
2. チートシートをプリントアウトする
次に、以下のチートシートをプリントアウトしました。
いっぱいコマンドが載っていますが、一気に全部は覚えられないので、最初に読んだチュートリアルで紹介されているコマンドにだけ赤ペンでチェックを入れました。
3. 動画でVimの機能をチェックする
それから今度は以下の動画をチェックしました。
コーディングを3倍速くする! Vim入門 | CSS-EBLOG
Vimの使い方を実際に動かしながら解説してくれるので、結構勉強になります。
動画の中で説明されているコマンドとチートシートを見比べて、載っていないコマンドがあればチートシートに追記したりしました。
実際はコマンドが載っていないのではなくて、それはコマンドのコンビネーションだったりするのですが、細かいことはまだよく分からないので、とりあえず自分が知らないと思ったコマンドは追記していきました。
4. チートシート(Version 1.0)を完成させる
これでオリジナルのチートシートができあがります。
この時点でチートシートにはコマンドの中でも特に基本的なコマンドにチェックが入っていますし、チートシートには載っていないコマンドも追記されています。
たとえば、僕のチートシートはこんな感じです。
5. Vimを実践で使う
さあ、このチートシートを片手にいよいよ実践に突入です。
これからはサクラエディタを完全に封印します。(もちろんWindowsのメモ帳も)
テキストファイルを編集する場合はVim一本に絞り込みます。
最初はある程度非効率になることを覚悟しながら、Vimだけでテキストファイルを編集します。
"i"を押してしまうと、ある意味メモ帳と同じような挙動になってしまうのですが、できるだけそのような使い方はせず、ノーマルモードと挿入モードを使い分けるように努力します。
また、Webなどで新しい知識を得た場合はチートシートに追記していきます。
もちろん、仕事だけでなくプライベートでもVimに一本化します。
Vimはプラットホームを選ばないので、どこでも使えるのが強みです。
6. Vim標準のチュートリアルも活用する
Vimを実務で使いながら、さらに修行をします。
Vimには標準でチュートリアルが付属しているので、これを活用します。
ちょっと長いですが、一気に全部終わらそうとせず、2〜3日に分けて終了させればいいと思います。
7. Vimをカスタマイズする
Vimに慣れてくると、微妙に使い勝手が悪いような部分が見えてきます。
標準の設定だと色々な便利機能がOFFになっていたりするので、設定を変更しましょう。
Vimの設定は「vimrc」を変更するのですが、多機能すぎて素人にはよく分かりません。(僕もまだ十分理解できてません)
そこでネットで公開されているオススメ設定をそのまま拝借してみましょう。
サイトによって多少の違いはありますが、どのサイトにもある程度共通のオススメ設定が載っているはずです。
8. コマンドを復習する
そんなこんなで2〜3日ぐらい「Vim縛り」をやっていると、徐々にVim恐怖症は消えてくると思います。
おめでとうございます!これであなたも立派なVimmerです!!・・・と喜ぶのはまだ早いです。
もう一回チートシートを見直してください。
もう一回VimのTutorialをやってみてください。
あれ?Vimにこんなコマンドがあるなんて知らなかったぞ?何か便利そうやん!
と思うようなコマンドをいくつか再発見できるはずです。
最初のうちは基本的なコマンドや使い慣れたコマンドを利用するだけで必死になってしまいますが、余裕が出てくると新しい便利なコマンドにも気がつくようになってきます。
さらに「Vim力」をアップさせるために、そうした新しいコマンドも利用できるようになりましょう。
9. さらに情報を収集する
あとできれば、これまでチェックしていなかったVim関連のWebサイトや書籍をチェックしてみてください。
自分の知らないVimの使い方やコマンドのコンビネーションがまだまだあることに気づくはずです。
僕の場合はこの本を読みました。(職場の同僚から借りました)
Learning the vi and Vim Editors: Text Processing at Maximum Speed and Power
- 作者: Arnold Robbins,Elbert Hannah,Linda Lamb
- 出版社/メーカー: O'Reilly Media
- 発売日: 2008/07/25
- メディア: ペーパーバック
- 購入: 4人 クリック: 254回
- この商品を含むブログ (2件) を見る
また、チートシートも第2弾、第3弾を作ってみてください。
僕は上述のLearning Vimからリファレンスページをコピーして、チートシートを新たに作りました。
これらのチートシートをデスクの片隅置いて、「あんなことがしたい」「こんなことがしたい」と思ったときにチェックするようにしました。
さらに、一回使ったコマンドは再び使う可能性が高いので、赤ペンでチェックを入れました。
10. 定期的に復習を繰り返す
チートシートやVim関連情報は定期的に(月1回とか)復習することをお勧めします。
Vimに慣れてきたとしても、いつのまにか自分の知っているコマンドだけで作業をしてしまう可能性があるためです。
せっかくVimを使うのであれば、色んなコマンドを使いこなせるようになりたいものです。
2012.04.15 追記
定期的な復習に最適(?)なBe VimmerというTwitterボットを作りました。
詳しくはこちらのブログで解説しています。良かったら利用してみてください。
Vimコマンドを定期的に解説してくれるTwitterボットを作りました - give IT a try
まとめ
Vimのメリット
僕はこんな感じでサクラエディタからVimに乗り換えました。
実際に乗り換えてみると、Vimの便利さが分かります。
特にカーソルの移動がすいすいできるので、十字キーを連打する回数が減りました。
行単位や単語単位のコピー&ペーストなんかも速くなります。
あと、どんなファイルタイプでもCtrl + Pで変数名やキーワードの自動補完ができるのも便利です。
あー、こんなことができたらもっとVimは便利なのになー、と思うときはたいていその願いを叶えるオプションやコマンドがあるので、まずはネットを検索してみてください。
たとえばWindowsでクリップボードをVimと共有する場合も設定変更で実現できます。
vimエディタからクリップボードを利用する。 — 名無しのvim使い
また先ほども述べましたが、色々なプラットホームで使えるのでOSが変わってもテクニックの使い回しが可能です。
加えて歴史のあるエディタなのでネット上の情報も豊富です。
Vimのデメリット(?)
Vimに慣れてくると、今度はメモ帳的な動きをするエディタが嫌になるかもしれません。
たとえば、Visual Studioを使ったコード編集やOffice製品のドキュメント編集とか。
あと、間違ってVimコマンドをタイプして変な動きを招くこともあります。
VimでCtrl + Fは画面スクロールになりますが、これをブラウザでうっかりやってしまうと検索ダイアログが開きます。
たぶん、筋金入りの強者はこの辺も全部Vim仕様に置き換えていくんでしょうけど・・・。
勇気を出して踏み出せば、きっとあなたも立派なVimmer!
というわけで、以前の僕のようにVim恐怖症を患っているプログラマの方も、僕の体験談を参考にしてVimmerの仲間入りをしてもらえるとうれしいです。
ではこのへんで。
あわせて読みたい
脱初心者を目指すなら知っておきたい便利なVimコマンド25選 (Vimmerレベル診断付き)
長年Vimを使ってみて、「これはVimならでは」と思うような便利コマンドを集めてみました。
チェックリストを使ってVimmerレベル診断もできます!w
脱初心者を目指すVimmerにオススメしたいVimプラグインや.vimrcの設定
あまりマニアックになりすぎない程度に便利なプラグインや.vimrcの設定を紹介しています。
Vimに慣れてきて「もっと効率的にコードを書きたい!」と思った頃に読むと効果的かもしれません。
社内でVimコマンド古今東西ゲームをやってみた - give IT a try
チームにVimmerが何人かいるなら、こんなゲームはいかがでしょうか?