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


152

素晴らしいctrlp.vimプラグインを見つけました。これは、以前使用したCommand-Tプラグインに代わる優れたものです。Command-Tについて私が気に入らなかったのは、vimを起動した後で初めて呼び出されたときにファイルを再スキャンするのに約20〜30秒かかることです。

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

ありがとう!


3
これはドキュメントで非常に明確に答えられています。
Mark Wilden、2012年

回答:


283

ドキュメントから:

<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キャッシュに追加されたばかりの場合、一致が自動的に表示されます。


105
これは、CTRL-Pモードで行う必要があることに注意してください。したがって、1。2 ctrl-p.F5
David Kay、

1
ほとんど動作しますが、更新されているようですが、新しく追加されたファイルは見つかりません
xer0x

1
@ xer0x正しいCWDにいることを確認してください。NERDTreeの使用中に同じ問題がありました。
jsbeckr 2013年

9
追加するために、現在編集中は自分のファイルを検索できません。
ダリルサントス2014

58

JEETは、あなたが押すことができますと言うF5が、それが動作しない場合は、いつでも実行できる:CtrlPClearCacheものをしていますF5実行することになっています。

ドキュメントから

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


GNUスクリーンウィンドウをFnキーにマップしているので、これは完璧です。ありがとうございます。
LeonardChallis 2017

6

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

これを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

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


2
保存時は高額なようです。新しいファイルを作成するためのトリガーはありますか?
Alex Moore-Niemi 2015

4

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

g:ctrlp_use_caching = 0


これはおそらく、元の質問に対する最良かつ最も正確な答えです。特に、あなたがコンピュータ(私はあなたを見ているのはApple ..)を使用している場合、関数行にアクセスするには代替の修飾キーが必要です。
Devon Kiss

私はこの答えが好きです。キャッシュがなくても、ctrpはすでに十分高速で、Agを使用して速度を上げることができます
Nhan Tran

2

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

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

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


2
なぜキャッシュを無効にしないのg:ctrlp_use_cachingですか?
Martin Tournoij、2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.