Plug-in VIM ctrlp.vim: come eseguire nuovamente la scansione dei file?


152

Mi sono imbattuto nel fantastico plug-in ctrlp.vim . È una buona alternativa al plug-in Command-T che ho usato prima. Quello che non mi è piaciuto di Command-T è che ci sarebbero voluti circa 20-30 secondi per ripetere la scansione dei file quando viene invocato per la prima volta dopo l'avvio di vim.

CtrlP funziona molto più velocemente ma non sembra effettuare una nuova scansione automatica per i file appena creati. Come devo attivare manualmente una nuova scansione?

Grazie!


3
Questa è una risposta molto chiara nella documentazione.
Mark Wilden,

Risposte:


283

Dalla documentazione :

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

Ciò presuppone che tu sia già in modalità ctrl-p. Nota che puoi premere F5 nel mezzo di una query, ad esempio puoi digitare alcuni caratteri, trovare che non corrisponde a un file aggiornato di recente e premere F5 per aggiornare subito. Ti mostrerà automaticamente la corrispondenza se il file è stato appena aggiunto alla cache ctrl-p.


105
Si noti che questo deve essere fatto in modalità CTRL-P. Quindi, 1. ctrl-p2.F5
David Kay,

1
Quasi funziona per me, lo vedo aggiornare ma non trova i file aggiunti di recente
xer0x

1
@ xer0x Assicurati di essere nel CWD corretto. Ha avuto lo stesso problema durante l'utilizzo di NERDTree.
jsbeckr,

9
Solo per aggiungere, non puoi cercare il tuo file mentre lo stai modificando.
Daryll Santos,

58

Come dice Jeet , è possibile premere, F5ma se non funziona è sempre possibile eseguire :CtrlPClearCacheciò che F5dovrebbe essere eseguito.

Dalla documentazione

: CtrlPClearCache Svuota
la cache per la directory di lavoro corrente. Come premere CtrlP.
Per abilitare o disabilitare la memorizzazione nella cache, utilizzare | g: ctrlp_use_caching | opzione.


Ho le finestre dello schermo GNU mappate sui miei tasti Fn, quindi questo è perfetto - grazie!
Leonardhall

6

Se lo desideri, puoi interrompere automaticamente la cache quando si verifica un salvataggio, quindi sarà costretto ad aggiornarsi al prossimo utilizzo.

Metti questo nel tuo vimrc (credito 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

Sfortunatamente non c'è modo di mantenere automaticamente la cache fresca in background.


2
sul salvataggio sembra un po 'costoso. esiste un possibile trigger per la creazione di un nuovo file?
Alex Moore-Niemi,

4

Ho aggiunto questo a .vimrc che disattiva la cache ctrlp

g:ctrlp_use_caching = 0


Questa è probabilmente la risposta migliore e più accurata alla domanda originale. Soprattutto se sei su un computer (ti sto guardando Apple ..) a cui la riga della funzione necessita di un tasto modificatore alternativo per accedere.
Devon Kiss,

mi piace questa risposta, anche senza cache, ctrp è già abbastanza veloce, può usare Ag per aumentare la velocità
Nhan Tran

2

So che questa è una vecchia domanda, ma è così semplice che devo commentare. Metti questo nel tuo .vimrc

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

Ciò aggiornerà la cache e quindi chiamerà CtrlP. Niente più file mancanti.


2
Perché non disabilitare semplicemente la memorizzazione nella cache con g:ctrlp_use_caching?
Martin Tournoij,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.