Artículos‎ > ‎

Usando tags con Vim

El uso de tags o etiquetas con Vim es tremendamente útil, ya que nos va a permitir ver o saltar rápidamente a las definiciones de las funciones y variables (aunque estén en otro fichero), e incluso autocompletar de forma inteligente (Omni Completion) al estilo de Eclipse o Visual Studio. Pero vayamos por partes:

Instalando ctags

Antes de empezar a utilizar los tags es necesario instalar el programa que genere el archivo de tags.

Este programa es independiente de Vim y se llama ctags

Ejecutando ctags 

Una vez instalado, nos situamos mediante la línea de comandos en la carpeta donde tenemos los ficheros de código fuente sobre los cuales queremos generar el archivo de tags y ejecutamos (dependiendo del lenguaje):

ctags *.c *.h  

De esta forma se nos generará un fichero llamado tags en la carpeta actual que contendrá los tags de los ficheros .c y .h de esa carpeta.

Usando tags

Cuando abrimos cualquier fichero, Vim busca de forma predeterminada un fichero que se llame tags en la carpeta del fichero. Si lo encuentra, lo carga automáticamente como fichero de tags.

Para conocer o modificar los archivos de tags que Vim abrirá por defecto debemos usar el comando :set tags

Algunos de los comandos de tags más interesantes son:

  • CTRL-] : Salta al tag de la palabra que tenemos en el cursor.
  • CTRL-T : Retrocede al tag anterior.
  • CTRL-W } : Nos muestra la definición de la función que tenemos bajo el cursor en la ventana preview.
  • :pc : Cierra la ventana preview

Generando tags de APIs

Aparte de generar tags para nuestro código, también puede ser interesante hacerlo para las APIs que estamos utilizando. De esta forma, podremos ver y acceder a las definiciones de funciones del API.

Por ejemplo, en Java, el código suele estar en $JAVA_HOME/src.zip. Si descomprimimos el código a un directorio y ejecutamos: ctags -R directorio se nos generará un archivo de tags que contendrá todo el API de Java.

Omni Completion

Una de las utilidades mas interesantes de usar ficheros de tags es la posibilidad de utilizar el autocompletado inteligente, también llamado Omni Completion. Esto lo explico en el artículo Completado inteligente.