Web屋のためのHow to Vim (表)

/web/tool

Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。

Vim Advent Calendar 2011 19日目。
迫り来るX'dayに有形無形の圧力を感じつつ、それでも健気に生きる紳士淑女へ捧ぐ。全ての独身貴族の味方@sigwygです。飲みに行こうぜ!

さて、今回はWeb屋に向けて「Vim使おうぜ!」て記事を書こうかと思ってました。こないだのSugamoで「どんな記事がいいkana?」と訊いてみたところ、以下3点の意見が挙がりました。

  • 初心者導入キット(汎用.vimrc)
  • 定番プラグイン
  • ファイルの開き方がそもそも判りづらい><

うん、つまらん! 初心者向け講座ってのは以前てきとーだけどやったことがあって、もっとマシに纏めればはてブ稼げるだろうってのも解ってますよ。しかし同じブログで似たような記事を連投するのも微妙なので止めときます。きっとえどさんがやってくれると信じてる。

定番プラグインってのはアレだね。良くあるネタです。
今回のVim Advent Calendarでも@__papix__さんとかが纏めてくださってますが、個人的には...

Surround.vim Vim標準のtext-objectを拡張して、引用符を任意の記号に入れ替えたり、引用符だけ削除したり、選択範囲をHTMLタグで囲ったりできるようになります。これ使ったことない人はモグリってくらい定番。
Snipmate.vim コード片を任意の単語で呼び出して、ぺたっと貼り付けられます。if<tab>とか打つと
if () {
    # body...
}
とか出てきます。カスタマイズが容易で判りやすく、<tab>押した時のカーソル位置まで定義できるので人気のプラグインです。
vim-alignta コード整形用。指定した文字列の位置で縦位置を揃える。
pre {
    position: absolute;
    top: 10px;
    width: 320px;
    overflow: hidden;
    text-align: left;
}
...のようなコードが「:Align:」などと打つと...
pre {
    position   : absolute;
    top        : 10px;
    width      : 320px;
    overflow   : hidden;
    text-align : left;
}
...となる。前後の空白数とかも調整できるけど割愛。
もともと定番と言えるのはAlign.vimというものだけど、これは日本語等の2バイト文字に弱いので、日本人はAlignta.vimのほうを使うのがBetter。
NeoComplCache 自動補完を提供するプラグイン。Vimには標準でオムニ補完が実装されているけれども、候補数が多くなるとこちらのほうが高速。 ただし設定が大変だと有名。Vimテクニックバイブル買いましょう。
Unite.vim 絞り込み検索のインターフェイスを提供するプラグイン。 何も知らないとファイラーやバッファ検索としてしか使われないが、知れば知るほど奥の深さに驚かされる。
その真価を垣間見れるのは、プラグイン開発者になってかららしい(ゴゴゴゴゴゴ
Quickrun 開発用。編集中のプログラムを、Vimを閉じずに実行し、さらに結果を表示させることもできる。 コンソールに戻って確認する手間が省けるので、スクリプトをよく書く人の間では神扱いされる。
Fontzoom.vim プレゼン用。Vimのフォントを拡大/縮小するキーマップを提供する。
Macだと標準の<Command>+/-で代用できるので不要。

...この辺りかな。2011年版です。後は必要に応じてjslintとかvimshellとか。

そして話しネタとしては安定のプラグイン管理プラグイン。

Pathogen.vim
  • plugin/fontzoom/fontzoom.vim
  • plugin/unite.vim/doc/unite.txt
  • plugin/unite.vim/autoload/unite.vim
...などとプラグインをプラグイン毎のディレクトリで管理できるようになる。
気を抜くと猥雑になりがちなVimのプラグイン管理に革命をもたらした目から鱗のプラグイン。
削除したいときとか、ディレクトリごと削除してしまえば良いので後腐れが無い。便利。
Vundle Pathogenのコンセプトを踏襲し、さらに(GitHubやVim.orgに登録されているプラグインなら)コマンド一発で追加・削除ができるようになったもの。
NeoBundle.vim VundleをShougoさんがfolkしたVer.
インストール時に現段階が表示されるようになった

作業ログが見れる

バージョン固定ができるなど、痒いところに手が届く機能が追加されている。

まあ今ならNeoVundle一発ですね。導入はVundleと殆ど同じですので、Vundle環境の人なら移行も容易いかと。

さて次はファイルの開き方か... もう19日が終わるので長くなったのでまさかの二部三部構成。いったん切るよ!

上記も参考までに。Enjoy! (^^)/ !

Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。