¿Cómo acceder a los archivos usados ​​recientemente eligiendo de una lista?

8

Me gustaría tener una pulsación de tecla para mostrar una lista de archivos utilizados recientemente para elegir uno para editar.

  • ¿Qué necesito para proporcionar eso?

Y relacionado,

  • ¿Cómo administro el historial de archivos usados ​​recientemente?
  • Esto debería admitir la exclusión de nombres de archivo o subdirectorios.
Volker Siegel
fuente
¿Le importaría ampliar un poco lo que quiere decir con "soporte excluyendo ..."? ¿Quiere decir que desea mostrar una lista de todos los archivos excepto algunos coinciden con un patrón, o que le gustaría excluir ciertos archivos desde siempre a aparecer en la lista? (La última opción es lo que hace la respuesta de @ muru autocmd; la primera parece que sería más útil y posiblemente más fácil de lograr.)
Kyle Strand
@KyleStrand Estaba pensando en la primera variante, excluyendo un archivo si la ruta coincide con uno de una lista de patrones. Por ejemplo, los patrones podrían ser algo así *.tmp,/tmp/*,/mnt/foo/*.
Volker Siegel

Respuestas:

10

Puede usar el :browsecomando para eso:

:browse oldfiles

Para una pulsación de tecla, mapearlo:

nnoremap <Leader>o :browse oldfiles<cr>

Luego puede presionar Leader oen modo normal para ver una lista de archivos.

De :help v:oldfiles:

                                        v:oldfiles oldfiles-variable
v:oldfiles      List of file names that is loaded from the viminfo file on
                startup.  These are the files that Vim remembers marks for.
                The length of the List is limited by the ' argument of the
                'viminfo' option (default is 100).
                When the viminfo file is not used the List is empty.

Entonces, para limitar, digamos, 50 archivos, puede establecer viminfo:

set viminfo+='50

No veo una manera fácil de excluir archivos de esto, aparte de deshabilitar el viminfouso autocmd:

autocmd BufNew *.sh set viminfo=

Esto tiene la gran falla de deshabilitar todo el historial para cualquier sesión que implique archivos coincidentes.

muru
fuente
Esa es una característica increíble de la que nunca había oído hablar.
Kyle Strand
¿Sería posible combinar el browsecomando unitey / o PipeCmdlograr el filtrado que OP quisiera?
Kyle Strand
@KyleStrand Yo tampoco he usado nunca, así que no lo sé.
muru
4

Echa un vistazo a la función MRU de Ctrl-P . Una vez que lo haya instalado, escriba :CtrlPMRUFilesy se abrirá un buscador difuso en la parte inferior de la pantalla que puede buscar difusamente.ingrese la descripción de la imagen aquí

CharlesL
fuente