Vim - ctrlp.vimでキャッシュが更新されないときに確認すること
kien/ctrlp.vimを使っていて、 以下のキャッシュクリアを行なってもキャッシュが更新されないことがありました。
- :CtrlPClearCache
- :CtrlPClearAllCaches
- ctrlp実行中にF5
なんでだろうと思って調べたところ、自分の設定ミスでした。
" vimrc let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files']
:CtrlP
(ファイル一覧)で表示される一覧は、このg:ctrlp_user_command
の実行結果を使っています。
(この結果がキャッシュファイルに書き込まれる)
ファイル一覧取得のコマンドがgit ls-files
にしてあるので、
インデックスに追加されていないファイルは除外されていた、というわけでした。
ちなみにヘルプにはちゃんとそう書いてありました。
" Single VCS, listing command does not list untracked files: let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files']
ひとまず次のように書き換えたところ、無事期待通り動くようになりました。
" vimrc " (findやgrepが使える環境前提) let g:ctrlp_user_command = ['.git', 'cd %s && find . -type f | grep -v .git']
.gitの除外はgrep -v
じゃなくてg:ctrlp_custom_ignore
の設定で効いてくれそうな気はするのですが、上手く効かずよく分からなかったのでgrepにしてます。