はじめに
日常からエディタはvim
を使っていましたが、素のvimと言っていいほどプラグインを使ってませんでした。
コマンドそこそこ覚えてからプラグイン入れようかなーと思って早一年。
そろそろプラグインに手を出したいと思います。でもプラグインに頼りすぎてvim
の原型を無くしたくないので最小限にしようかなと思っていました。
そこで、とりあえずUnite.vimをちゃんと使えるよう設定しました。
Unite.vimとは
超絶有名なプラグイン。vimをIDEのようにしてしまう素晴らしいプラグインです。
本家ページはこちらからご確認ください。
Shougo/unite.vim
導入方法
NeoBundole導入済みの場合はまず以下のコードを.vimrcに記述して保存します。
NeoBundle 'Shougo/unite.vim'
vimを再起動後、ノーマルモードで以下のコマンドを実行。これでUnite.vimプラグインがダウンロードされ使えるようになります。
:NeoBundleInstall
Unite.vimの情報はネットにたくさんあるので詳しく知りたい人はググってみてください。
使い方
使い方は膨大で私は全部わかりませんw
主に以下のサイトを参考にさせて頂きました。ありがとうございます。
unite.vimの使い方まとめ
http://mba-hack.blogspot.jp/2013/03/unitevim.htmlunite.vimまとめ
http://qiita.com/hide/items/77b9c1b0f29577d60397Vimの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に記述します。
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
をインストールすれば大丈夫です。
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
はこんな感じです。使いづらくなったら変更しようと思います。
" 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/598vimrc基礎文法高速マスター
http://d.hatena.ne.jp/thinca/20100205/1265307642unite.vimについて語る
http://d.hatena.ne.jp/osyo-manga/20130307/1362621589
vim
のプラグインに不可能は無い(と信じている)ですね。
みなさんも良きvim
ライフを!!