vimプラグイン入門、またはvimを使いこんで婚約者をゲットする方法
vimテクニックバイブ欲しいのですが、どこに行っても置いてません。そんなに売れてるもんなんでしょうか。
vimを使い始めて早1年、といってもほとんどコード書かないからあんまり使ってないのですが、コマンドにもある程度慣れ、vimrcもちょっといじれるようになってきたので今更ながらプラグインとやらをいれてみようかと思ったわけであります。
vimのプラグインて?
vimにプラグインを入れられる訳です。
例えば、1ヶ月ほど前の日記で書いたテキストオブジェクトに対する編集をより強化するsurround.vimや、書いたコードをその場ですぐに実行して結果を得られるvim-quickrun、ファイラ・ランチャとしてのunite.vimなど、多くの便利なプラグインがあります。
これらのプラグインを入れることによって、あなたのvimがより強力なテキストエディタに進化することでしょう。
あと、プラグインをたくさん入れてマウスを一切触らずキーボードだけでカチャカチャカチャッターンとかやってると、なんかハッカーぽくてもの凄くかっこよく見えるので、職場だとかスタバとかでvimをいじってるとヤバいくらいにモテるようになります。ホントです。レディーたちが下腹部をおさえながら自分に群がるようになります。vimテクニックバイブルを執筆された方々はvimのプラグインのおかげで結婚できたと言っても過言ではありません。あなたが脇目もふらず半笑いでvimをカチャカチャやってるのを横目にヒソヒソ話をしている女性がいたら、それは求婚しようかどうしようか相談しているところなのです!ホントです。もしプラグインをいれてなければ、一刻も早くvimのプラグインを入れるべきです。
プラグインの置き場所
vimの設定ファイル.vimrcのように、プラグインにも決まった置き場があります。ダウンロード、インストールの前にの置き場を確認しましょう。
help:runtimepath
とvimのコマンドモード時に入力すると、vimのヘルプのruntimepathの項目が表示されます。そこでデフォルトのプラグイン読み込みディレクトリとその順序がわかります。デフォルトは以下の順番で各ディレクトリ内のプラグインを読み込みます。
・Mac
$HOME,$VIM,$VIMRUNTIMEなどの定数はvimのコマンドモードで
:!echo $HOME
と外部コマンドを実行することで確認できます。(windowsの場合は :!echo %$HOME% だった気がする)
読み込み順の一番上にある.vimやvimfilesディレクトリは大抵存在しません。なのでプラグインを入れたくなったら、まずはその.vimディレクトリやvimfilesディレクトリを作成しましょう。
また、runtimeというのは、vimの配布側が用意した設定ファイル群をまとめたディレクトリを指します。vimの起動時には$VIMと$VIMRUNTIMEという定数にそのディレクトリのパスが設定されます。なので実は$HOMEディレクトリにvimfilesディレクトリなどを作ってその中にプラグインを入れなくても、直接runtimeディレクトリに入れてしまえばプラグインは動いてしまいます。が、以下の理由からそのような方法は非推薦です。
- runtimeはVimの配布側がメンテしてる場所なので、あとから入れてしまうと万一エラーが出た時に(どのプラグインがエラー出してるのか)問題の切り分けが難しい
- runtimeはユーザがいじる場所じゃないのでそれを想定してないプラグインとかありそう
- Vimを更新した際にruntimeも更新されるから
- 管理が面倒
http://d.hatena.ne.jp/tyru/20110703/how_to_install_vim_plugin
横着せずにちゃんとディレクトリを作りましょう。でないとvimmerの雄、id:tyru先生にしばかれます。
ちなみにvimrcも読み込み順がちゃんと決まっているのですが、こちらは.vimrcが見つかった時点でそれ以降のvimrcファイルは読み込まなくなります。プラグインについてはvimrcと違い、上記のディレクトリ内のすべてのファイルを読み込みます。
あとruntimepathに検索するディレクトリを追加することも出来ます。コマンドモードで以下のように設定できます。
:set runtimepath+={検索ディレクトリ}
ディレクトリ構成
vimfilesや.vimディレクトリはディレクトリ構成が決まっています。プラグインはもちろんのこと、カラースキームやヘルプファイルなどは、vimfilesや.vimディレクトリの中の所定のディレクトリにインストールしましょう。ディレクトリ構成は以下のようになります。
$HOME/
└─ vimfiles/ vimエディタの設定ファイルディレクトリ
├─ filetype.vim ファイル名パターンごとに、ファイルタイプを設定したい場合に用意する。
├─ scripts.vim ファイルのデータによって、ファイルタイプを設定したい場合に用意する。
├─ colors/ カラースキーマ用のファイルは、このディレクトリに入れる。
├─ doc/ ドキュメント用のディレクトリ。
├─ ftplugin/ ファイルタイププラグイン用のディレクトリ。
├─ indent/ インデントスクリプト用のディレクトリ。
├─ plugin/ プラグイン用のディレクトリ。このサイトで紹介しているプラグインは、大抵このディレクトリに入れると動作する。
├─ syntax/ シンタックスファイル用のディレクトリ。
└─ after/ このディレクトリ以下のスクリプトは、システムのスクリプトが読み込まれた後、読み込まれる。
├─ftplugin/
├─indent/
└─ ....
http://nanasi.jp/articles/howto/user-manual/user-manual-user-dir.html
linuxのような$HOME/.vimの場合でも同様です。ちなみにvimのランタイムもほとんど同じ構成になっています。そちらについてはvim-users.jpのHack#34を参照。
プラグインをインストールしよう!
これでやっとどうやってインストールすればいいかが分かりました。早速なにか適当にプラグインをインストールしてみましょう。
有名所はどれもgithubで公開されていたりしますが、ここはvimの公式サイトhttp://www.vim.org/から探してみます。「script」から最近更新されたプラグインを見ることができますし、「search」でお目当てのプラグインを探すことができます。
最近僕は何気なくコマンドモードで
:Sex
と入力してみたらそれがディレクトリエクスプローラーの起動コマンドであることを発見してしまいました。中学生のときから精神年齢が一行に成長しないという重篤な病気を患う僕は、なんだか楽しくなってコーディングもほったらかしでそのコマンドを何度も何度も叩き続けました。ちなみに僕は来月で25歳になります。
まぁそれはいいとして、いや罹患者である僕としては全然良くないんですけど、ともかくvimでファイルエクスプローラが起動できるわけです。
で、このファイルエクスプローラ、カレントディレクトリにあるファイルを表示・開くことが出来るんですが、これがカレントディレクトリにしか適用できません。複数のディレクトリに対応するやつないかなぁと探していたところ、丁度それっぽいのが見つかりました。
http://nanasi.jp/articles/vim/opsplorer_vim.html
というわけで、前置きが長くなりましたがこのopsplorer.vimというファイルエクスプローラーなプラグインを試しに入れてみましょう。
まずはwww.vim.org内のこのプラグインのページを見てみましょう。
http://www.vim.org/scripts/script.php?script_id=362
ページ内にプラグインの説明とインストール方法、プラグインのダウンロードリンクがあると思います。早速ダウンロードしてみます。2011年10月11日時点での最新バージョンは1.2です。
ダウンロードができたら、install detailsに従ってインストールしてみましょう。
install details
ダウンロードしてきたzipファイルを解凍します。そうするとopsplorer.vimというファイルとopsplorer.txtというファイルの2つが出てきます。拡張子が.vimのほうがこのプラグインの実体のvimscriptファイルで、.txtのほうがこのプラグインのヘルプファイルとなります。
出てきたもののうち、opsplorer.vimを.vimまたはvimfiles内の plugin というディレクトリに入れましょう。pluginというディレクトリがなければ、そのディレクトリを作成してください。同様にしてopsplorer.txtというファイルを doc というディレクトリにインストールします。
それができたら、以下のコマンドを入力してヘルプを使えるようにしましょう。
:helptags $HOME/.vim/doc/
これで完了です。正しくインストールされていれば、vimを再起動して以下のコマンドを入力するとプラグインが実行されます。
:Opsplore
ちゃんとインストール出来ていたようです。ヘルプファイルも問題なく見れていますね。
今は1つしか入れていないので問題ないのですが、今後いくつもプラグインを入れていったときに、管理が面倒になります。そうしたときは管理用のプラグインをいれたほうがいいかもしれません。Vundleやpathogenが定番といったところみたいですね。僕自身でそれらのプラグインを入れて覚書程度に書こうかと思いましたが、これからノートPCを持ってスタバに行く用事があるのでまた今度にします。