02. Vim: extendiendo el editor

Publicado por

Vim es un editor de texto poderoso y simple a la vez, fue creado para cumplir solamente la tarea de editar archivos de texto plano y lo hace muy bien. Uno de los mejores aspectos de este editor es la simplicidad de su interfaz y su capacidad para agregar más funcionalidad a través de plug-ins. Al terminar de leer esta nota, conocerás todo lo que necesitas acerca de estos, desde cómo instalarlos, hasta cómo crear tus propios scritps.

La propiedad runtimepath

Para saber en qué directorios buscar, en Vim existe la opción 'runtimepath', cuyo valor es la lista de directorios donde el editor buscará, entre otras cosas, los plug-ins. El concepto detrás de esta opción es muy parecido al de la variable de ambiente PATH que usan varios sistemas operativos para saber dónde están instalados los programas.

:set runtimepath
runtimepath=~/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim80,/usr/share/vim/vimfiles/after,~/.vim/after
Pulse INTRO o escriba una orden para continuar

El primer directorio de esta lista ~/.vim, es propiedad del usuario, por lo tanto todos los cambios que se hagan en este solo afectarán el comportamiento del editor para este. Hay que notar que la ubicación de este directorio cambiará dependiendo de la plataforma que estés utilizando.

Plataforma Directorio
Unix $HOME/.vim
Amiga home:vimfiles
MS Windows %HOME%\vimfiles
Macintosh $VIM:vimfiles
RISC-OS Choices:vimfiles
VMS sys$login:vimfiles

En MS Windows es conveniente crear la variable de ambiente HOME, yo aconsejo que su valor sea igual %USERDIR% o %USERPROFILE%.

Dentro de cada uno de los directorios listados en 'runtimepath' se tiene (o puede tener) una estructura similar a esta:

$HOME/.vim
├── autoload
├── colors
├── compiler
├── doc
├── ftplugin
├── plugin
├── spell
└── syntax

Anteriormente ya he hablado de algunos de estos directorios: colors y spell. Ahora es el turno de hablar de los directorios plugin y ftplugin, porque es en estos donde se instalan los scripts que sirven para extender las funcionalidades de Vim. Más adelante explicaré para qué sirven los demás.

Los plug-ins

Los plug-ins son scripts que el editor carga automáticamente. Existen dos tipos: los de tipo global, que se aplican a los archivos de todos los tipos y se cargan al iniciar el editor y los de tipo filetype, que se aplican solo a archivos de un tipo y se ejecutan al crear un buffer de ese tipo.

Para ilustrar mejor cómo es que los plug-ins entran en acción hagamos un pequeño ejercicio: primero crea un archivo llamado plugin/global.vim con el siguiente contenido:

echo "cargando plug-in global"

Luego crea otro archivo llamado ftplugin/text.vim con el siguiente contenido:

echo "cargando plug-in para archivos de texto"

De tal manera que tu directorio .vim se vea así:

$HOME/.vim
├── ftplugin
│   └── text.vim
└── plugin
└── global.vim

Al iniciar el editor, este mostrará el mensaje “cargando plug-in global” debido a que se ha cargado el script plugin/global.vim; por otra parte, el script ftplugin/text.vim sigue inactivo debido a que no existe ningún buffer de tipo text.

Plug-in para archivos tipo textPlug-in para archivos tipo text

Nota como al momento de ejecutar :set filetype=text, aparece en la parte inferior la leyenda definida en el script ftplugin/text.vim. Eso es la evidencia de que nuestro ftplugin fue cargado con éxito en cuanto el editor detecta un buffer del tipo que le corresponde.

¿Dónde encuentro plug-ins?

Hay varios lugares en donde puedes encontrar plug-ins. El primero de ellos es por supuesto www.vim.org, navega por el sitio, descarga los que quieras y guárdalos en el directorio plugin o ftplugin, según corresponda; el otro lugar donde puedes encontrar más scripts es el mismo editor, si quieres saber más al respecto, puedes explorar el directorio $VIMRUNTIME:

:edit $VIMRUNTIME

Espero que esta nota te haya servido para entender mejor cómo es que Vim utiliza sus plug-ins y que te animes a empezar a escribir los tuyos. En las siguientes notas de esta serie, te mostraré cómo puedes agregar nuevas funcionalidades al editor ¡Hasta entonces!

2 comments

    1. ¡Claro que sí!

      El objetivo de esta temporada es precisamente aprender a configurar Vim para sacarle el máximo provecho. Te recomendo que te suscribas al blog y nos sigas en nuestras redes sociales para que no te pierdas ninguna nota de esta serie.

      ¡Muchas gracias por leernos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *