VIM ctrlp.vim plugin: how to rescan files?

VimPlugins

Vim Problem Overview


I have come across the awesome ctrlp.vim plugin. It is a good alternative to the Command-T plugin which I have used before. What I did not like about Command-T is that it would take about 20-30 seconds to rescan files when it is invoked for the first time after starting vim.

CtrlP works a lot faster but it does not seem to automatically rescan for newly created files. How should I trigger a rescan manually?

Thanks!

Vim Solutions


Solution 1 - Vim

From the documentation:

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

This assumes you're in ctrl-p mode already. Note that you can hit F5 in the middle of a query, i.e., you can type a few characters, find it's not matching a recently updated file, and hit F5 to refresh right then. It will automatically show you the match if the file was just added to the ctrl-p cache.

Solution 2 - Vim

As Jeet says you can press F5 but if that doesn't work you can always run :CtrlPClearCache which is what F5 is supposed to run.

From the documentation > :CtrlPClearCache
Flush the cache for the current working directory. The same as pressing <F5> inside CtrlP.
To enable or disable caching, use the |g:ctrlp_use_caching| option.

Solution 3 - Vim

I added this to .vimrc which turns off ctrlp caching

g:ctrlp_use_caching = 0

Solution 4 - Vim

If you want, you can automatically bust the cache when a save happens, so it will be forced to refresh on next use.

Put this in your vimrc (credit 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

Unfortunately there's no way to automatically keep the cache fresh in the background.

Solution 5 - Vim

I know this is a old question, but it's so simple that I have to comment. Put this in your .vimrc

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

This will refresh the cache and then call CtrlP. No more missing files.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionko1RnView Question on Stackoverflow
Solution 1 - VimJeetView Answer on Stackoverflow
Solution 2 - VimOskar PerssonView Answer on Stackoverflow
Solution 3 - VimPipView Answer on Stackoverflow
Solution 4 - VimmahemoffView Answer on Stackoverflow
Solution 5 - VimLuiz RochaView Answer on Stackoverflow