Comandos de autocompletado de Vim
Estos días estoy leyendo el libro “CSS the missing manual” y el autocompletado de Vim me viene de maravilla, es capaz de autocompletar las propiedades y los valores. Esto es lo que me ha motivado a escribir el siguiente post.
Vim tiene varios comandos de autocompletado, personalmente suelo usar omni completion y el comando que busca palabras del fichero actual pero hay otros que conviene conocerlos y habituarse a usarlos.
Estos comandos son llamados desde el modo de inserción con la combinación de teclas CTRL-X y luego CTRL-<modo de autocompletado>. Cuando empiezas a escribir una palabra invocas el comando, se abrirá un popup con las coincidencias de la palabra que hay justo delante del cursor y para moverte entre ellas CTRL-N para saltar a la siguiente(Next) y CTRL-P para volver a la previa (Previous).
Ahora que sabemos como manejarlo vamos a ver algunos de los diferentes modos:
Omni completion
Para invocarlo CTRL-X_CTRL-O , este comando es “inteligente”(en cierta medida y según la configuración) porque las coincidencias que te ofrecerá estarán relacionadas con el contexto.
Si abrimos un fichero con un script en Ruby, escribimos ”5.” (cinco punto) y seguido pulsamos CTRL-X_CTRL-O nos mostrará todos los operadores y métodos de la clase Integer. Por esto digo que tiene algo de inteligente.
Ocurre algo por el estilo si usamos este modo con un fichero CSS:
Simplemente invoqué el comando y me mostró las coincidencias
Autocompletado con palabras del fichero actual:
Para invocarlo CTRL-X_CTRL-N. Este comando no es inteligente, simplemente autocompleta la palabra buscándola entre las palabras claves de fichero actual.
Imaginad que tenemos el siguiente texto y tenemos que desarrollar una tesis sobre ello:
“El músculo esternocleidomastoideo (Sternocleidomastoideus) es un músculo de la cara lateral del cuello, en la región anterolateral; largo, robusto, constituido en su tramo torácico por dos manojos o cabezas: la esternal, cilíndrica, y laclavicular, aplanada. Entre ambas dejan el triángulo de Sédillot, que permite un acceso a la vena yugular interna para establecer una vía.” – Texto sacado de la wikipedia.
Escribir la palabra esternocle… es largo y tortuoso, con este comando será menos tortuoso.
Autocompletado con palabras del fichero actual y los incluidos:
Para invocarlo CTRL-X_CTRL-I. Este comando funciona exactamente igual al anterior pero además de buscar en el fichero local busca las palabras clave en los ficheros incluidos.
Este comando según como tengas configurado ‘complete’ funciona prácticamente igual que CTRL-N , personalmente uso este último porque es mas fácil de recordar y configurable.
Autocompletado de una línea entera:
Para invocarlo CTRL-X_CTRL-L. Este comando no acostumbro a usarlo porque intento ser DRY, si lo usas mucho programando eres poco DRY
Un ejemplo gráfico con un fichero CSS:
Empecé a escribir la propiedad “font” e invoqué el comando.
Autocompletado de tags:
Para invocarlo CTRL-X_CTRL-]. Este comando autocompleta el texto delante del cursor buscando la coincidencia en la lista de tags.
La lista de tags hay que generarla previamente. En proyectos Rails usando rails.vim tenemos el comando :Rtags o lo puedes hacer a mano con Exuberant Ctags. Este es un autocompletado que no uso así que no me viene a la cabeza un caso de uso concreto pero he pensado que podía ser útil a otras personas.
Autocompletado de ficheros:
Para invocarlo CTRL-X_CTRL-F. Este comando autocompleta paths y ficheros desde el directorio en el que te encuentras actualmente. Funciona muy bien porque reconoce rutas relativas y absolutas.
Un ejemplo gráfico con un fichero HTML:
Invoqué autocompletado sin escribir nada
Hay otros comandos de autocompletado que no he nombrado(por ej. las sugerencias de ortografía o el autocompletado de definiciones y macros). Si los queréis ver todos o profundizar sobre el tema os recomiendo la ayuda de Vim :help ins-completion
¡Esto es todo por hoy!



