¿Puedo agregar un conjunto de palabras al vocabulario de autocompletar de Vim?

13

En Vim, soy consciente de usar CTRL-n y CTRL-p para autocompletar palabras encontradas en el documento. Esto es excelente para promover el uso de métodos descriptivos y nombres de variables.

Me gustaría agregar un conjunto de palabras para autocompletar que a menudo pero no estoy en el archivo fuente que estoy editando actualmente. Mi solución actual es simplemente agregar la lista de palabras a un comentario en la parte inferior de mi archivo de plantilla, pero eso parece un poco despilfarrador y, en el mejor de los casos, difícil de entender.

¿Hay alguna manera de agregar palabras al vocabulario autocompletado de Vim que sería accesible para cada sesión de Vim?

madh
fuente

Respuestas:

10

Puede usar abreviaturas en su ~/.vimrcarchivo para solo un par de palabras:

: abbr supe superusuario
: abbr autoc autocompletar
: abbr que question

Estos se completarán automáticamente después de presionar Spaceo Enter. Entonces, si escribiste que, presionaste Spaceo Enterterminaría la palabra "pregunta" para ti.

Si agrega mucho y desea esta interfaz:

texto alternativo

Puedes usar diccionarios . Simplemente configure un archivo con una palabra en cada línea, luego en su .vimrc agregue una línea como esta:

set dictionary+=/home/john/dict.txt

Reemplace la ruta con la ubicación de su archivo de diccionario. Luego puede usar Ctrl+ xy Ctrl+ kpara mostrar las sugerencias. Ctrl+ ny Ctrl+ ppara seleccionar el siguiente / anterior de múltiples selecciones.

John T
fuente
1
¡fantástico! voy a usar diccionarios!
madh
Esto funcionó! Sin embargo, no obtengo ese menú atractivo. Estoy usando VIM 6.3.82, que no es la última versión.
madh
Ah ... ¿ayuda la actualización? Debe presionar la secuencia Ctrl-x, Ctrl-k para que aparezca el menú. Aunque me alegra poder ayudar :)
John T
Esta es la forma correcta.
a las.
Acabo de comprobar que esto funciona en VIM 7.2. ¡Gracias de nuevo!
madh
2

Las "fuentes" del autocompletado regular (el que obtiene de Ctrl+ N) se toman de la completeopción (ver :h 'complete') El valor predeterminado es

complete=.,w,b,u,t

lo que significa

  1. . escanear el búfer actual
  2. w escanear buffers desde otras ventanas
  3. b escanear otros buffers cargados que están en la lista de buffer
  4. u escanear los búferes descargados que están en la lista de búferes
  5. t finalización de etiqueta

puedes agregar tu propio diccionario con

set complete+=k~/.vim/keywords.txt

y agregue las palabras clave una por línea ~/.vim/keywords.txt. De esta manera puede acceder a las terminaciones directamente con Ctrl+ N(no es necesario invocar explícitamente la finalización del diccionario con Ctrl+ X, Ctrl+ K). Encontré que esto es especialmente útil para las terminaciones de código donde tengo todos los nombres de funciones comunes utilizados enkeywords.txt

ecerulm
fuente