Vim Plugins · 5 min read · Nov 30, 2025
Plugins útiles de Vim para desarrolladores de software - parte 3: a.vim
Hasta ahora, en esta serie de artículos que cubren plugins relacionados con la programación para Vim, hemos discutido los conceptos básicos de la instalación de plugins de Vim utilizando el gestor de plugins Pathogen, y hemos cubierto un total de tres plugins: a saber, Tagbar, delimitMate y Syntastic. Ahora, en esta tercera y última parte, discutiremos otro plugin muy útil llamado a.vim.
Por favor, ten en cuenta que todos los ejemplos, comandos e instrucciones mencionados en este tutorial han sido probados en Ubuntu 16.04, y la versión de Vim que hemos utilizado es la 7.4.
A.vim
Si te dedicas al desarrollo de software y trabajas con lenguajes de programación como C y C++, estarás de acuerdo en que es prácticamente imposible saber cuántas veces tienes que cambiar entre archivos fuente y archivos de encabezado. Lo que quiero decir es que es una tarea muy básica que se realiza con mucha frecuencia.
Si bien es fácil cambiar entre archivos cuando usas un IDE basado en GUI (ya que solo tienes que hacer un par de clics con el mouse), las cosas se complican un poco si estás utilizando un IDE de línea de comandos como Vim. Sin embargo, como ya habrás adivinado, existe un plugin - llamado a.vim - que te facilita la vida, especialmente cuando se trata de cambiar entre archivos fuente y archivos de encabezado.
Antes de saltar al uso, vale la pena mencionar que el proceso de instalación de este plugin es diferente de la forma en que hemos estado instalando los otros plugins discutidos en esta serie de artículos. A continuación se presentan los pasos involucrados en este caso:
- En primer lugar, necesitas descargar un par de archivos (a.vim y alternate.txt), lo cual puedes hacer dirigiéndote aquí.
- A continuación, crea los siguientes directorios: ~/.
vim/bundle/avim, ~/.vim/bundle/avim/doc, ~/.vim/bundle/avim/plugin, y ~/.*vim/bundle/autoload*. - Una vez que se haya creado el directorio, coloca a.vim en ~/.vim/bundle/avim/plugin así como en ~/.vim/bundle/autoload, y alternate.txt en ~/.vim/bundle/avim/doc.
Eso es todo. Si todos los pasos mencionados anteriormente se completan con éxito, el plugin estará instalado en tu sistema.
Usar el plugin es muy simple: Todo lo que tienes que hacer es ejecutar el comando :A - si el archivo actual es un archivo fuente (digamos test.c), el plugin abrirá el archivo de encabezado correspondiente (test.h) para ti (viceversa también es cierto).
Obviamente, no siempre existe un archivo correspondiente con el mismo nombre. En estos casos, ejecutar :A creará un nuevo archivo con ese nombre. Por ejemplo, si test.h no existe, se creará un archivo con ese nombre y se abrirá para ti.
En caso de que quieras desactivar este comportamiento, puedes establecer la variable g:alternateNoDefaultAlternate (asignándole un valor distinto de cero) en el archivo .vimrc presente en tu directorio personal.
Siguiendo adelante, es bastante normal referirse a un archivo de encabezado no correspondiente desde un archivo fuente también. Por ejemplo, si estás en test.c, y quieres cambiar a algún otro archivo de encabezado (digamos mem.h) y no a test.h, entonces puedes hacerlo ejecutando el comando IH
Hasta ahora, toda la funcionalidad que hemos discutido asume que el archivo que pretendes abrir está presente en el mismo directorio que el archivo actual. Sin embargo, como estarás de acuerdo, no siempre es el caso. Lo que quiero decir es que en muchos proyectos la ubicación de los archivos fuente y los archivos de encabezado correspondientes no siempre está en el mismo directorio.
Para manejar tales situaciones, necesitas usar la variable g:alternateSearchPath. Esto es lo que dice la documentación oficial sobre esta variable:
“Este plugin permite que la ruta de búsqueda que utiliza para localizar archivos fuente y de encabezado sea configurada. La ruta de búsqueda se especifica configurando la variable g:alternateSearchPath. La configuración predeterminada es la siguiente:”
g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc' “Esto indica que el archivo correspondiente se buscará en ../source, ../src, ../include y ../inc, todos relativos al archivo actual del que se está cambiando. El valor de la variable g:alternateSearchPath es simplemente una lista separada por comas de prefijos y directorios. El prefijo “sfr:” indica que la ruta es relativa al archivo. Otros prefijos son “wdr:” que indica que el directorio es relativo al directorio de trabajo actual y “abs:” que indica que la ruta es absoluta. Si no se especifica ningún prefijo, se asume “sfr:”.”
Si todas las características mencionadas anteriormente de este plugin ya te han hecho decir “wow”, déjame decirte que eso no es todo. Otra funcionalidad extremadamente útil que ofrece el plugin es la capacidad de dividir tu pantalla de Vim para que tanto el archivo fuente como su archivo de encabezado correspondiente puedan ser vistos simultáneamente.
Además, puedes dividir la pantalla tanto horizontal como verticalmente, dependiendo de lo que mejor se adapte a ti. Usa el comando :AS para dividir la pantalla horizontalmente y el comando :AV para la división vertical.


Usa el comando :A para cambiar entre los archivos abiertos.
El plugin también te permite abrir un archivo correspondiente en una pestaña separada dentro de la misma ventana de Vim. Puedes hacer esto ejecutando el comando :AT.

Por supuesto, al igual que :AV, :AS y :AT, también puedes usar los comandos :IHV, :IHS y :IHT.
Conclusión
Si bien hay muchos plugins de Vim relacionados con la programación disponibles para usar, los que discutimos en esta serie de tres partes deberían ser suficientes para darte una idea de cuán poderoso se vuelve el editor si tienes los plugins correctos habilitados para tu trabajo de desarrollo de software.
Por supuesto, solo nos hemos centrado en la parte de programación aquí. Para aquellos de ustedes que usan Vim como su editor de texto diario, deben saber que hay una gran cantidad de plugins disponibles que añaden funcionalidad de edición de texto a Vim y lo hacen aún mejor. Pero dejaremos esta discusión para otro día.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.