2009-02-09 11 views
243

Cuando abro un nuevo archivo en vim y uso la terminación de pestañas, completa el nombre completo del archivo en lugar de hacer la coincidencia parcial como lo hace bash. ¿Hay alguna opción para hacer que la finalización de esta pestaña de nombre de archivo funcione más como bash?¿Cómo puedo hacer que vim haga una tabulación normal (tipo bash) para los nombres de archivo?

+9

Técnicamente hablando, estoy bastante seguro de que "bash" no completa ningún tabulador. Es readline que hace eso. –

+2

Estamos hablando de personalizar el comportamiento de la función^X^F? – BrunoJCM

Respuesta

353

Yo personalmente uso

set wildmode=longest,list,full 
set wildmenu 

Al escribir la primera pestaña golpe completará lo más posible, la segunda pestaña golpe proporcionará una lista, el tercer y pestañas posteriores desplazarse por las opciones de terminación para que pueda completar el archivo sin más teclas

fiesta como sería simplemente

set wildmode=longest,list 

pero el total es muy práctico

+4

Esta es una de esas cosas que siempre olvido cómo configurar cuando necesito reiniciar mi vimrc desde cero. ¡Gracias! –

+2

¡Exactamente lo que estaba buscando! ¡Gracias! –

+5

Ojalá pudiera votar esto más de una vez ... Esta es una de esas cosas que me han molestado durante años, pero nunca he encontrado la solución. ¡Gracias! – sanmiguel

4

Asumo que está utilizando autocompletar en vim través Ctrl +n para buscar a través del búfer en uso. Cuando utiliza este comando, obtiene una lista de soluciones, simplemente repita el comando para pasar al siguiente elemento de la lista. Lo mismo es cierto para todos los comandos de autocompletar. Mientras completan la palabra completa, puede continuar moviéndose por la lista hasta que llegue a la que desea usar.

Espero que esto sea útil.

Editar 1: Esto puede ser un comando más útil: Ctrl + p. La única diferencia es que Ctrl +p una búsqueda hacia atrás en la memoria intermedia mientras Ctrl +n busca hacia delante ... Siendo realistas, lo harán tanto proporcionar una lista con los mismos elementos, que sólo puede aparecer en una diferente orden.

2

Pruebe usar: establecer wildmenu. Aparte de eso, no estoy seguro de qué es exactamente lo que estás intentando. Elabora un poco más por favor. Oh, sí, y tal vez probar este enlace: link

6

Si no desea establecer el wildmenu, siempre se puede presionar Ctrl + L cuando se quiere abrir un archivo. Ctrl + L completará el nombre de archivo como finalización de bash.

+0

Ctrl-L no funciona como autocompletar bash. No recorre todas las opciones posibles. – raine

+2

Mi bash _does_ actúa así. '' completa la cadena actual tan lejos como sea posible de forma inequívoca (como 'CTRL-L' en Vim) y' 'muestra una lista de posibles coincidencias (como' CTRL-D' en Vim). – glts

16

El comportamiento más cercano a la terminación del golpe debe ser

set wildmode=longest:full,full 

Con unos cuantos carácter escrito, pestaña pulsando una vez le dará todos los partidos disponibles en wildmenu. Esto es diferente a la respuesta por Michael que abre una ventana de tipo quickfix debajo de la línea de comando.

Luego puede seguir escribiendo el resto de los caracteres o presionar la pestaña nuevamente para autocompletar con la primera coincidencia y rodearlo.

5

Aparte de la wildmode/wildmenu sugerido, vim también ofrece la opción de mostrar todas las terminaciones posibles mediante el uso de Ctrl +d. Esto podría ser útil para algunos usuarios que tropiezan con esta pregunta cuando buscan diferentes opciones de autocompletado en vim como yo.

Cuestiones relacionadas