Плагин 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. Больше отсутствующих файлов.