Unite を始めてみた(ack と組み合わせて使う方法など…)

Vim の Plugin を更新がてら、Yokohama.vim #0 の頃から気になっていた Unite に入門してみました。

基本設定

一先ずインストール後に下記のようなキーマッピングにしてみました。

nmap ;; :Unite
nmap ;s :Unite source<CR>
nmap ;b :Unite buffer<CR>
nmap ;f :Unite file<CR>
nmap ;r :Unite ref/

';' を全て Unite に捧げてます。使用頻度の高い source, buffer, file 以外は、試行錯誤中です。

Unite file でカレントファイルと同じディレクトリのファイル一覧を表示してくれるので、':e' の使用頻度が減り、下記を削除できました。

autocmd BufNewFile,BufRead,BufEnter * exec ':lcd ' . expand("%:p:h") 

ちなみに、Unite + vim-ref の組み合わせは、最高に使い勝手が良いので、Vim をご使用の Erlanger や Perl Mongers は是非ご利用を…。

ack 用の設定

好みの問題ですが、grep より ack の方が好きなので、unite-qf と組み合わせて、下記のようにしてみました。

set grepprg=ack\ -a\ --nocolor
nmap ;q :Unite qf<CR>
nmap ;/ :grep  \| Unite qf<LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT><LEFT>

11連発が格好悪いのですが… ";/" で ":grep | Unite qf" まで入力されるので、後は検索ワード(正規表現可)を入れると、ack の結果を Unite で表示します。Unite qf の箇所は、好みで cw20 とかでも良いと思います。
注意点として、ack は、カレントディレクトリ配下を検索範囲とするので、前述の autocmd で lcd を実行する設定を入れないと、カレントファイルが存在するディレクトリ以下を検索範囲にしません。


毎度の如く突っ込み大歓迎。