vimプラグイン入れて使ってみた（Unite.vim編）


##はじめに
日常からエディタは`vim`を使っていましたが、素のvimと言っていいほどプラグインを使ってませんでした。
コマンドそこそこ覚えてからプラグイン入れようかなーと思って早一年。
そろそろプラグインに手を出したいと思います。でもプラグインに頼りすぎて`vim`の原型を無くしたくないので最小限にしようかなと思っていました。

そこで、とりあえずUnite.vimをちゃんと使えるよう設定しました。

##Unite.vimとは
超絶有名なプラグイン。vimをIDEのようにしてしまう素晴らしいプラグインです。
本家ページはこちらからご確認ください。
[Shougo/unite.vim]
(https://github.com/Shougo/unite.vim)

#####導入方法
NeoBundole導入済みの場合はまず以下のコードを.vimrcに記述して保存します。

```.vimrc
NeoBundle 'Shougo/unite.vim'
```

vimを再起動後、ノーマルモードで以下のコマンドを実行。これでUnite.vimプラグインがダウンロードされ使えるようになります。

```vim(ノーマルモード時)
:NeoBundleInstall
```

Unite.vimの情報はネットにたくさんあるので詳しく知りたい人はググってみてください。

##使い方
使い方は膨大で私は全部わかりませんw
主に以下のサイトを参考にさせて頂きました。ありがとうございます。
>unite.vimの使い方まとめ
>http://mba-hack.blogspot.jp/2013/03/unitevim.html

>unite.vimまとめ
>http://qiita.com/hide/items/77b9c1b0f29577d60397

>VimのUniteプラグインでファイル、バッファ、ブックマーク管理
>http://www.karakaram.com/unite

##agの導入
ファイルの`grep`検索遅いなーと思っていましたがagなるものが高速と聞いたので導入しました。導入方法をちょっとご紹介。

#####導入方法
ag（The Silver Search）はbrewで入れます。

```端末
$ brew install the_silver_searcher
```

これでインストール完了です。しかし、自分は上手く行かず...。こんなエラーが

```端末
$ brew install the_silver_searcher
==> Downloading https://github.com/ggreer/the_silver_searcher/tarball/0.14
Already downloaded: /Library/Caches/Homebrew/the_silver_searcher-0.14.tgz
==> aclocal -I /usr/local/share/aclocal
aclocal: error: couldn't open directory '/usr/local/share/aclocal': No such file or directory

READ THIS: https://github.com/mxcl/homebrew/wiki/troubleshooting
```

最近になってMarvericksにアップデートしたので上手く行かなかったのでしょうか。
```brew update```でも治らなかったので```brew upgrade```したら治りました。インストールも無事完了。

Unite.vimでagを使えるようにするには下記のコードを.vimrcに記述します。

```.vimrc
let g:unite_source_grep_command = 'ag'
let g:unite_source_grep_default_opts = '--nocolor --nogroup'                                                                                              
let g:unite_source_grep_max_candidates = 200
let g:unite_source_grep_recursive_opt = ''
" unite-grepの便利キーマップ
vnoremap /g y:Unite grep::-iRn:<C-R>=escape(@", '\\.*$^[]')<CR><CR>
```

ちょっと余計なのもありますがこれで`grep`で`ag`が使えます。
便利キーマップとし`C-v`で単語を選択後`/g`で検索かけれるようにしました。これは上記の参考文献と下記の参考文献から引用させて頂きました。ありがとうございます。

>agとUnite.vimで快適高速grep環境を手に入れる
>http://blog.monochromegane.com/blog/2013/09/18/ag-and-unite/

##neomru.vimの導入
Unite.vimにあるコマンドのなかに`:Unite file_mru`とありますが、これがなぜか使えませんでした。これは`file_mru`が`Unite.vim`から分離したため処理できなかったようです。
解決するには`NeoBundle`で`neomru.vim`をインストールすれば大丈夫です。

```.vimrc
NeoBundle 'Shougo/neomru.vim'
```

これで`:Unite file_mru`コマンドが使えるようになりました。
以下のサイトを参考にさせて頂きました。ありがとうございます。
>file_mruが呼び出せずにエラーになったのでunite.vimを再設定
>http://jsapachehtml.hatenablog.com/entry/2014/03/14/135458

##Unite.vim使ってみて
バッファやヤンク履歴なども管理できこんなに便利になるとは驚きでした。`Unite.vim`恐るべし...。agも高速でとても満足です。煩わしさを感じていた箇所がピンポイントで解決出来ました。
...もっと早く使っていればよかったw

最終的に`Unite.vim`にまつわる`.vimrc`の記述は以下のようにしました。
prefix keyは\<Space>uにして各`source`はこんな感じです。使いづらくなったら変更しようと思います。

```.vimrc
" The prefix key.
nnoremap    [unite]   <Nop>
nmap    <Space>u [unite]

" unite.vim keymap
let g:unite_source_history_yank_enable =1
nnoremap <silent> [unite]u :<C-u>Unite<Space>file<CR>
nnoremap <silent> [unite]g :<C-u>Unite<Space>grep<CR>
nnoremap <silent> [unite]f :<C-u>Unite<Space>buffer<CR>
nnoremap <silent> [unite]b :<C-u>Unite<Space>bookmark<CR>
nnoremap <silent> [unite]a :<C-u>UniteBookmarkAdd<CR>
nnoremap <silent> [unite]m :<C-u>Unite<Space>file_mru<CR>
nnoremap <silent> [unite]h :<C-u>Unite<Space>history/yank<CR>
nnoremap <silent> [unite]r :<C-u>Unite -buffer-name=register register<CR>
nnoremap <silent> [unite]c :<C-u>UniteWithBufferDir -buffer-name=files file<CR>
nnoremap <silent> ,vr :UniteResume<CR>
" vinarise
let g:vinarise_enable_auto_detect = 1 
" unite-build map
nnoremap <silent> ,vb :Unite build<CR>
nnoremap <silent> ,vcb :Unite build:!<CR>
nnoremap <silent> ,vch :UniteBuildClearHighlight<CR>

let g:unite_source_grep_command = 'ag'
let g:unite_source_grep_default_opts = '--nocolor --nogroup'
let g:unite_source_grep_max_candidates = 200
let g:unite_source_grep_recursive_opt = ''
" unite-grepの便利キーマップ
vnoremap /g y:Unite grep::-iRn:<C-R>=escape(@", '\\.*$^[]')<CR><CR>
```


##おわりに
今回はvimスクリプトについても調べつつの作業でした。
上記以外にもこれらのサイトを参考にさせて頂きました。ありがとうございます。
>Vimの設定をNeoBundle中心にした
>http://extjs.sunvisor.net/598

>vimrc基礎文法高速マスター
>http://d.hatena.ne.jp/thinca/20100205/1265307642

>unite.vimについて語る
>http://d.hatena.ne.jp/osyo-manga/20130307/1362621589

`vim`のプラグインに不可能は無い（と信じている）ですね。
みなさんも良き`vim`ライフを！！