読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

Vim Advent Calendar 2011 8日目 〜初心者がオススメする初心者でも安心なVimプラグイン集〜

Vimmerの皆様, こんにちわ. Vim Advent Calendarの8日目を担当させて頂きます, papixと申します.
始めまして, の方も多いと思いますので, まず最初に簡単に自己紹介をさせて頂きます.

  • 関西に住むPerl使い(のつもり)
  • 某大学でコンパイラ的な何かと戯れる22歳
  • Vim歴約半年

今日は, 「Vimに挑戦してみたいけど, 最初の一歩が...」という方の背中をポン, と押して, Vimへの第一歩を踏み出せるような記事を書こうと思っていました.
そしてそれについて私は真に驚くべきネタを見つけましたが, このブログはそれを書くには狭すぎる... すいません, 時間がなくてまとめきれませんでした!!!
なので今日は, 書きたかったことの中の1つ, Vimを使い始めたばかりの人が感じるであろう, 「プラグインって, どんなの使えばいいのだろう...」という疑問に対して私なりの一例を示すことで, Vim Advent Calendarの記事とさせて頂きたいと思います.

初心者がオススメする初心者でも安心なVimプラグイン集

  • NeoBundle - プラグイン管理ツール

とりあえずプラグインを入れる前に, これを入れておきましょう. プラグインの管理がぐっと楽になります.
pathogenでも良いのですが, 個人的にはNeoBundleの方が使い勝手がいいかな, と思います.

Vimで文字を入力中, 補完リストを自動的にホップアップしてくれます.
例えばプログラムを書いているときに非常に長い変数があると, 入力が面倒ですよね. そういう時にneocomplcacheがあれば, 変数名を入力している途中でその変数名が補完候補として出てくるので, タイプ量を大幅に削減することができます.
なんというか, ここまでで理解して頂けると思いますがだいぶ説明が下手なのでこの便利さがうまく伝えられなくて歯がゆいのですが, とりあえず入れたら「おお, すげえ便利!」と感じて頂けるのは間違いないので, 入れてみて下さい.

  • neco-look - 英語を正確に素早く入力する

先程紹介したneocomplcacheプラグインと, 英単語の綴りを調べるlookコマンドを使って, 英語入力時に単語の自動補完をしてくれるツールです.
特にコミットログや仕様記述などで英文を入力する必要があるときにこのプラグインを導入しておけば, 単語を途中まで入力すればあとは自動的に補完してくれますし, タイプミスをしていれば補完が出てこないので, それに気づくことができます.

  • ref.vim - リファレンス参照

PerlPHP, Ruby, Pythonといった言語のリファレンスを見ることができるプラグインです. 注目すべき点はalc英辞郎も使えるので, 英和辞書・和英辞書として使えるというところ.
研究室の課題で英語の技術書の日本語訳をする必要があるとき, 最初はVimで日本語訳を書いて, わからない単語が出たらブラウザを使って英辞郎で調べる... という感じにしていたのですが, このプラグインを導入すると日本語訳を書くのも, 単語を調べるのも, 全部Vimでできる訳です. 導入した時はもう便利すぎて, 脳内麻薬がドパーっと出ましたね.

  • vimshell - シェル

ref.vimを使えば, "英和辞書・和英辞書がVimで引けるようになって, 英語の日本語訳がVimだけで完結するようになる!"と説明しました. こういうふうに, "ある作業がVimの中で完結する"と, キーボードだけで全ての操作が済むので, 気持ちいいですよね.
では, vimshellはどういう操作をVimだけで完結してくれるようになるのでしょう. ...そう, 名前の通り「シェルを使ってできることならひと通り」です!
vimshellがない場合, プログラムを書いてから実行するとなると, Vimを一旦終了するか, 端末をもう1つ開いてプログラムを実行, というふうにするのではないでしょうか. 私も最初はそうでした.
ところがvimshellを導入すれば, Vimでプログラムを書いた後にvimshellでプログラムを実行する, なんてことができるのです! これはもうすごい便利! (同じようなことができるquickrunというプラグインもあります. こちらもオススメです.)
他にも, Vimを使っている最中に違うファイルをVimで開きたい, という場合にvimshellで探してvimshellからVimで開く, なんてこともできます(こういう使い方の場合, uniteを使った方が良いのでしょうけど...).
あ, vimshellを使うときは, vimで非同期実行を行う為のプラグインであるvimprocの導入も忘れずに, です.

最後に...

もっといろいろ紹介したかったのですが, とりあえず"直感的に使える", "プログラマじゃなくても(プログラミング目的以外でも)便利に使える"という選考基準で個人的に厳選した5つのプラグインを紹介させて頂きました.
とりあえず言いたいのは, 「プラグインって, どんなの使えばいいのだろう...」と悩む暇があれば, 「とりあえず入れてみて, 合わなかったら削除する」という感じにプラグインと接するのがいいんじゃないかな, と思ったりしています. NeoBundleとか入れておけば, プラグインの管理も簡単ですし.
正直に言えば既に初心者の方向けにプラグインを紹介するような記事はネット上にいくつかあると思うですが, 今回は「初心者が初心者に勧める」ということで, ちょっと説得力を高めてみました, という感じです.

「このプラグイン, 説明間違ってるぞ!」とか, 「こんな使い方もできるんだぜ!」とか, 「こういう別のプラグインもあるぞ!」とか, 「このプラグイン入れてみろよ!」とか, この記事に対してご意見ご感想等ありましたら是非お聞かせ頂きたく思います. まだまだVim勉強中なので, 参考にさせて頂きたいと思います(誤りがあった場合は, できるだけ迅速に訂正致します).

次は...

@kaoriya さんです!
Vim Advent Calendarはまだまだ続くので, 皆さんの記事を見てしっかり勉強したいと思います.