web-dev-qa-db-ja.com

VIM ctrlp.vimプラグイン:ファイルを再スキャンする方法は?

素晴らしい ctrlp.vimプラグイン に出会いました。これは、以前使用した Command-Tプラグイン の代替として適しています。 Command-Tで気に入らなかったのは、vimを起動してから初めて起動したときにファイルを再スキャンするのに20〜30秒かかることです。

CtrlPは非常に高速に動作しますが、新しく作成されたファイルを自動的に再スキャンするようには見えません。手動で再スキャンをトリガーするにはどうすればよいですか?

ありがとう!

147
ko1Rn

ドキュメント から:

<F5>
  - Refresh the match window and purge the cache for the current directory.
  - Remove deleted files from MRU list.

これは、すでにctrl-pモードにいることを前提としています。クエリの途中でF5を押すことができることに注意してください。つまり、いくつかの文字を入力して、最近更新されたファイルと一致しないことを見つけ、F5を押してすぐに更新できます。ファイルがctrl-pキャッシュに追加されたばかりの場合、自動的に一致を表示します。

271
Jeet

Jeet のように押すことができる F5 しかし、それがうまくいかない場合は、:CtrlPClearCacheこれは何ですか F5 実行することになっています。

ドキュメント から

:CtrlPClearCache
現在の作業ディレクトリのキャッシュをフラッシュします。 CtrlPの内部を押すのと同じです。
キャッシュを有効または無効にするには、| g:ctrlp_use_caching |を使用しますオプション。

56
Oskar Persson

必要に応じて、保存が発生したときにキャッシュを自動的に無効化できるため、次回の使用時に強制的に更新されます。

vimrcにこれを入れてください (クレジット docwhat ):

" CtrlP auto cache clearing.
" ----------------------------------------------------------------------------
function! SetupCtrlP()
  if exists("g:loaded_ctrlp") && g:loaded_ctrlp
    augroup CtrlPExtension
      autocmd!
      autocmd FocusGained  * CtrlPClearCache
      autocmd BufWritePost * CtrlPClearCache
    augroup END
  endif
endfunction
if has("autocmd")
  autocmd VimEnter * :call SetupCtrlP()
endif

残念ながら、キャッシュをバックグラウンドで自動的に最新の状態に保つ方法はありません。

6
mahemoff

これを.vimrcに追加して、ctrlpキャッシングをオフにします

g:ctrlp_use_caching = 0

3
Pip

これは古い質問であることは知っていますが、非常に単純なのでコメントする必要があります。これを.vimrcに入れてください

:nnoremap <c-p> :CtrlPClearCache<bar>CtrlP<cr>

これによりキャッシュが更新され、CtrlPが呼び出されます。不足しているファイルはもうありません。

1
Luiz Rocha