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!


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.


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.


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.


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


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.


2
¿Por qué no simplemente deshabilitar el almacenamiento en caché g:ctrlp_use_caching?
— Martin Tournoij
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.