2009-12-17 12 views
64

Escribo muchos guiones de shell y constantemente tengo que ingresar en filepaths. Me pregunto si alguien sabe de una manera de hacer que Vim autocomplete los caminos de archivo mientras está en el modo de inserción, al igual que cuando está en su shell favorito para completar la ruta del directorio o archivo.Cuando está en el modo de inserción de Vim, ¿hay alguna manera de agregar la autocompletación de ruta de archivo?

crédito extra si usted puede conseguir CTRLD funcionalidad de la cáscara al modo de inserción Vim (es decir, para ver qué archivos/directorios están en la ruta actual).

+0

pregunta interesante, me gustaría saber la respuesta también :) –

+0

@stephenmm ¿Qué hace Ctrl-D en tu caparazón? En mi shell bash no hace nada cuando ingreso texto, de lo contrario cierro la terminal. – alhelal

Respuesta

126

Para file name finalización omnidireccional, puede utilizar:

Ctrl - XCtrl - F

+10

Otro momento de vim aha ... Gracias. No me pestaña en el modo de inserción utilizar de todos modos así añadido esto a mi .vimrc: IMAP stephenmm

+1

Otro buen uso para en modo de inserción es . Esto autocompletará la palabra que está escribiendo basándose en otras palabras en el archivo en el que está trabajando. Lo uso todo el tiempo cuando escribo nombres de variables o clases. – Derek

+0

@stephenmm ¡Gran consejo extra! – Ergwun

17

Hay ctrl - xctrl - f

:he compl-filename

14

para construir sobre @CMS y excelentes respuestas @ Michael

Al utilizar ctrl +Xctrl +f secuencia de comandos, se mostrará una lista de archivos en el directorio actual. Dedico un minuto a buscar la clave correcta para subir y bajar entre los diferentes nombres de archivo. Las teclas correctas son Ctrl-n y Ctrl-p. Puede usar casi cualquier otra tecla (como Espacio) para seleccionar y continuar escribiendo.

Además, si no está ya en el archivo/directorio que desea insertar, se puede bajar una estructura de árbol de archivos de la siguiente manera:

  1. desea, especifique alguna parte del directorio. ¡Incluso puede usar ../../ por ejemplo!
  2. Prensa ctrl +Xctrl +f y seleccione el primer elemento del árbol de la lista.
  3. Siguiente presione ctrl + f nuevamente mientras se resalta el elemento correcto para mostrar una lista del siguiente nivel en la estructura de árbol del directorio.

Puede seguir haciendo esto hasta que encuentre el directorio/archivo que desea insertar en el documento.

+3

En el paso 3, ¿quiso decir ctrl + x y ctrl + f? Como solo ctrl + f no funciona para mí, hace lo mismo que ctrl + n. Por cierto, no funciona aquí si un directorio tiene espacios en él: /. ¿sabes una solución alternativa? – Rojo

0

Tuve un problema similar.He encontrado solución como:

sudo apt-get install realpath 

Y en naviagte VIM a presentar ante en el tipo de modo normal:

:r !realpath /path/to/file 

Cuando se navega en modo no inserto después realpatch que son capaces de utilizar la llave botón.

VOILA! ¡TAB está trabajando de nuevo!

Cuestiones relacionadas