Autonomía digital y tecnológica

Código e ideas para una internet distribuida

YouCompleteMe: Sistema de autocompletado multilenguaje para vim como entorno de programación

Imago voragine.net

Llevaba tiempo echando en falta un buen sistema de autocompletado para vim; uno que sea multilenguaje porque lo normal es programar con varios lenguajes a la vez, pero también que permita autocompletar nombres de funciones o variables creadas en un proyecto concreto. Ya hace tiempo que me contento con el sistema nativo de vim, que prácticamente no uso por lo rudimentario que es. El autocompletado nativo de vim consiste en pulsar CTRL+n en modo inserción tras teclear el inicio de una expresión, navegar con los cursores hasta la expresión deseada y pulsar enter. Tres largos pasos.

A raíz de una conversación con Evelio Sánchez en Twitter me he puesto a buscar por si había algo nuevo. En un antiguo hilo de stackoverflow sobre el tema, actualizada hace unos meses, he encontrado una referencia a YouCompleteMe.

YouCompleteMe

Tras las primeras pruebas me gusta. El autocompletado es ágil. Conforme se teclea aparecen las opciones, no hace falta pulsar ninguna combinación de teclas. Si se sigue tecleando las opciones son ignoradas; si en cambio se quiere seleccionar alguna opción basta pulsar el tabulador hasta llegar a la deseada que se añadirá a nuestra línea, de nuevo sin tecla de confirmación. Una única operación, en vez de las tres del sistema nativo.

La base de datos de opciones se construye al abrir un archivo, con su contenido y el de otros archivos abiertos. El sistema de detección de expresiones es sofisticado:
Es selectivamente sensible a mayúsculas (smart case sensitive). Las minúsculas devuelven opciones en mayúsculas y minúsculas; las mayúsculas solo devuelven opciones en mayúsculas.
Devuelve coincidencias que contengan las letras tecleadas aunque no estén juntas pero sí tienen que aparecer en el orden que se han tecleado. Si se teclea gua una de las opciones será getUserAccount pero no autoUserLogin.
Ordena las coincidencias según importancia. Sigue un algoritmo en el que tiene gran peso las palabras que conformen la expresión (word boundary). Si se teclea gua aparece más arriba getUserAccount que Fooguxa.

Cómo instalar YouCompleteMe en Linux

Para instalar YouCompleteMe usaremos Vundle, el gestor de módulos de vim. Si no tienes instalado Vundle y no sabes cómo usarlo puedes aprender en este tutorial.

Como el repositorio de YouCompleteMe está alojado en GitHub basta añadir la siguiente línea al archivo ~/.vimrc para instalar el módulo:

Plugin 'Valloric/YouCompleteMe'

Una vez instalado el módulo:

$ cd ~/.vim/bundle/YouCompleteMe/
$ python install.py

Si surge alguna complicación se puede consultar la guía completa para compilar YouCompleteMe.

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks