Плагин VIM ctrlp.vim: как пересканировать файлы?

Я столкнулся с удивительным ctrlp.vim плагином. Это хорошая альтернатива плагину Command-T, который я использовал ранее. То, что мне не понравилось в Command-T, - это то, что для повторного сканирования файлов потребуется около 20-30 секунд, когда он запускается в первый раз после запуска vim.

CtrlP работает намного быстрее, но он, похоже, не выполняет автоматическое повторное сканирование для вновь созданных файлов. Как я могу запустить повторное сканирование вручную?

Спасибо!

Ответ 1

Из документации:

<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.

Ответ 2

Как Jeet говорит, что вы можете нажать F5, но если это не сработает, вы всегда можете запустить :CtrlPClearCache, что должно выполняться F5,

Из документации

: CtrlPClearCache
   Очистите кеш для текущего рабочего каталога. То же, что и нажатие    внутри CtrlP.
   Чтобы включить или отключить кеширование, используйте | g: ctrlp_use_caching | вариант.

Ответ 3

Если вы хотите, вы можете автоматически подорвать кеш при сохранении, поэтому он будет вынужден обновляться при следующем использовании.

Поместите это в свой 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

К сожалению, нет способа автоматически сохранить кеш в фоновом режиме.

Ответ 4

Я добавил это в .vimrc, который отключает кеширование ctrlp

g:ctrlp_use_caching = 0

Ответ 5

Я знаю, что это старый вопрос, но это так просто, что я должен прокомментировать. Поместите это в свой .vimrc

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

Это обновит кеш, а затем вызовет CtrlP. Больше отсутствующих файлов.