Pestaña parcial completa tipo bash para nombres de archivo en Vim

16

En Bash, cuando hay varios archivos con el mismo prefijo y escribo parte del prefijo y presiono Tab, completa el prefijo común y me permite continuar escribiendo para diferenciar entre los posibles resultados.

En Vim, cuando hay varios archivos con el mismo prefijo y escribo parte del prefijo y presiono Tab, completa toda la primera coincidencia y me permite seleccionar entre todas las coincidencias. Para reducir el conjunto, tengo que retroceder hasta llegar al final de la parte común, luego escribir un poco más y presionar Tabnuevamente.

A menudo tengo muchos archivos donde hay un prefijo común largo, y el archivo que quiero no está entre los primeros (por ejemplo, un directorio de archivos de proyecto que contiene, entre otras cosas, varios archivos MAKE todos con el nombre Makefile.{whatever}).

¿Puedo hacer que Vim se complete más como Bash para guardar muchas pulsaciones de teclas?

Bonificación si esto puede aplicarse también a otras terminaciones (por ejemplo, valores de enumeración que tienen el mismo prefijo)

John O'M.
fuente

Respuestas:

16

Puede usar la wildmodeopción para controlar esto.

Si lo usas :set wildmode=list:longest, obtienes un comportamiento similar a bash.

Yo personalmente prefiero usar :set wildmode=list:longest,full; Esto mostrará una lista de las finalizaciones, pero en la segunda Tab pulsación, puede alternar entre las entradas (y Shift+Taben el reverso).

Esto se aplica a todas las terminaciones realizadas por Vim.

Ver: :help 'wildmode'

Martin Tournoij
fuente
3
¡No insertar terminaciones de modo! Necesitas completeoptpara eso.
Rico
¡Gracias! ¡wildmode y completeopt son exactamente lo que estaba buscando!
John O'M.