VIM ctrlp.vim plugin: como verificar novamente arquivos?

152

Eu me deparei com o incrível plugin ctrlp.vim . É uma boa alternativa ao plug-in Command-T que eu usei antes. O que eu não gostei no Command-T é que levaria cerca de 20 a 30 segundos para verificar novamente os arquivos quando ele é chamado pela primeira vez após iniciar o vim.

CtrlP funciona muito mais rápido, mas não parece ser verificado novamente automaticamente para os arquivos criados recentemente. Como devo disparar uma nova varredura manualmente?

Obrigado!

ko1Rn
fonte
3
Isso é respondido com muita clareza na documentação.
Mark Wilden

Respostas:

283

A partir da documentação :

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

Isso pressupõe que você já esteja no modo ctrl-p. Observe que você pode pressionar F5 no meio de uma consulta, ou seja, você pode digitar alguns caracteres, descobrir que ele não corresponde a um arquivo atualizado recentemente e pressionar F5 para atualizar imediatamente. Ele mostrará automaticamente a correspondência se o arquivo tiver sido adicionado ao cache ctrl-p.

Jeet
fonte
105
Observe que isso deve ser feito enquanto estiver no modo CTRL-P. Então, 1. ctrl-p2.F5
David Kay
1
Quase funciona para mim, eu vejo isso atualizar, mas não encontra os arquivos adicionados recentemente
xer0x
1
@ xer0x Verifique se você está no CWD correto. Teve o mesmo problema ao usar o NERDTree.
jsbeckr
9
Apenas para adicionar, você não pode procurar seu próprio arquivo enquanto o estiver editando.
Daryll Santos
58

Como Jeet diz que você pode pressionar, F5mas se isso não funcionar, você sempre pode executar o :CtrlPClearCacheque F5deve executar.

A partir da documentação

: CtrlPClearCache
Limpe o cache do diretório de trabalho atual. O mesmo que pressionar dentro de CtrlP.
Para ativar ou desativar o armazenamento em cache, use o | g: ctrlp_use_caching | opção.

Oskar Persson
fonte
Eu tenho janelas de tela GNU mapeadas para minhas teclas Fn, então isso é perfeito - obrigado!
LeonardChallis
6

Se desejar, você pode bloquear automaticamente o cache quando ocorrer um salvamento, para que ele seja forçado a atualizar no próximo uso.

Coloque isso no seu 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

Infelizmente, não há como manter automaticamente o cache em segundo plano.

mahemoff
fonte
2
salvar parece meio caro. existe um gatilho possível para criar um novo arquivo?
Alex Moore-Niemi
4

Adicionei isso ao .vimrc, que desativa o cache do ctrlp

g:ctrlp_use_caching = 0

Pip
fonte
Esta é provavelmente a resposta melhor e mais precisa para a pergunta original. Especialmente se você estiver em um computador (estou olhando para você Apple ..) onde a linha de função precisa de uma tecla modificadora alternativa para acessar.
Devon Beijo
Eu gosto desta resposta, mesmo sem cache, o ctrp já é rápido o suficiente, pode usar o Ag para aumentar a velocidade
Nhan Tran
2

Sei que essa é uma pergunta antiga, mas é tão simples que tenho que comentar. Coloque isso no seu .vimrc

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

Isso atualizará o cache e chamará CtrlP. Não há mais arquivos ausentes.

Luiz Rocha
fonte
2
Por que não apenas desativar o cache g:ctrlp_use_caching?
Martin Tournoij 13/10/16