VIM ctrlp.vim plugin: ¿cómo volver a escanear archivos?

152

Me he encontrado con el increíble complemento ctrlp.vim . Es una buena alternativa al complemento Command-T que he usado antes. Lo que no me gustó de Command-T es que tomaría unos 20-30 segundos volver a escanear archivos cuando se invoca por primera vez después de iniciar vim.

CtrlP funciona mucho más rápido, pero no parece volver a explorar automáticamente los archivos recién creados. ¿Cómo debo activar un nuevo escaneo manualmente?

¡Gracias!

ko1Rn
fuente
3
Esto se responde muy claramente en la documentación.
Mark Wilden

Respuestas:

283

De la documentación :

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

Esto supone que ya está en modo ctrl-p. Tenga en cuenta que puede presionar F5 en el medio de una consulta, es decir, puede escribir algunos caracteres, descubrir que no coincide con un archivo actualizado recientemente y presionar F5 para actualizar en ese momento. Le mostrará automáticamente la coincidencia si el archivo se acaba de agregar a la caché ctrl-p.

Jeet
fuente
105
Tenga en cuenta que esto debe hacerse mientras está en modo CTRL-P. Entonces, 1. ctrl-p2.F5
David Kay
1
Casi funciona para mí, veo que se está actualizando pero no encuentra archivos recién agregados
xer0x
1
@ xer0x Asegúrese de estar en la CWD correcta. Tuve el mismo problema al usar NERDTree.
jsbeckr
9
Solo para agregar, no puede buscar su propio archivo mientras lo está editando actualmente.
Daryll Santos
58

Como dice Jeet , puede presionar, F5pero si eso no funciona, siempre puede ejecutar :CtrlPClearCachelo que F5se supone que debe ejecutar.

De la documentación

: CtrlPClearCache Vacía
el caché para el directorio de trabajo actual. Lo mismo que presionar dentro de CtrlP.
Para habilitar o deshabilitar el almacenamiento en caché, use | g: ctrlp_use_caching | opción.

Oskar Persson
fuente
Tengo ventanas de pantalla GNU asignadas a mis teclas Fn, así que esto es perfecto, ¡gracias!
LeonardChallis
6

Si lo desea, puede reventar automáticamente el caché cuando se guarde, por lo que se verá obligado a actualizarse en el próximo uso.

Ponga esto en su vimrc (crédito 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

Desafortunadamente, no hay forma de mantener automáticamente el caché fresco en segundo plano.

mahemoff
fuente
2
en guardar parece un poco caro. ¿hay un posible desencadenante para crear un nuevo archivo?
Alex Moore-Niemi
4

Agregué esto a .vimrc que desactiva el almacenamiento en caché ctrlp

g:ctrlp_use_caching = 0

Pepita
fuente
Esta es probablemente la mejor y más precisa respuesta a la pregunta original. Especialmente si estás en una computadora (te estoy mirando Apple ...) donde la fila de funciones necesita una tecla modificadora alternativa para acceder.
Devon Kiss
Me gusta esta respuesta, incluso sin caché, ctrp ya es lo suficientemente rápido, puede usar Ag para aumentar la velocidad
Nhan Tran
2

Sé que esta es una vieja pregunta, pero es tan simple que tengo que comentar. Pon esto en tu .vimrc

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

Esto actualizará el caché y luego llamará a CtrlP. No más archivos faltantes.

Luiz Rocha
fuente
2
¿Por qué no simplemente deshabilitar el almacenamiento en caché g:ctrlp_use_caching?
Martin Tournoij