Unite.vimでfile_recとかgrepとかでvendor/bundle以下のgemとかが出てきてウザいときがある。そこで.gitignore
で無視したファイルを候補から除外するように設定した。
.vimrc
" .gitignoreで指定したファイルと.git/以下のファイルを候補から除外するfunction!s:unite_gitignore_source()let sources = []
if filereadable('./.gitignore')forfilein readfile('./.gitignore')" コメント行と空行は追加しないiffile!~"^#\\|^\s\*$"call add(sources,file)endifendforendifif isdirectory('./.git')call add(sources,'.git')endiflet pattern = escape(join(sources,'|'),'./|')call unite#custom#source('file_rec','ignore_pattern', pattern)call unite#custom#source('grep','ignore_pattern', pattern)endfunctioncalls:unite_gitignore_source()
Vim Scriptはほとんど書いたことがないのでアレかもしれない。ただ.gitignore
を一行ずつロードしてリストに追加してjoinしてエスケープしてUnite.vimの設定に追加してるだけ。ついでに.git
以下も除外するようにした。