>

VIM, ese gran desconocido. Parte II.

Juanma Cabello     Colaboraciones    23/06/2017

Los gestores de paquetes son pequeñas aplicaciones que, en los últimos tiempos, nos están salvando la vida a todos los que nos dedicamos a esto del desarrollo del software. El más claro ejemplo es el gestor de paquetes para PHP composer.

VIM no es menos y también cuenta con varios gestores de paquetes. Tradicionalmente, los vimeros hemos usado Pathogen aunque últimamente estamos dando el salto a Plug, mucho más liviano.

Instalación de Plug

La forma en la que puedes usar Plug es muy sencilla, tan solo tienes que declarar en tu .vimrc los proyectos de cada plugin que quieras usar:

call plug#begin(expand('~/.vim/plugged'))

Plug 'chriskempson/base16-vim'

call plug#end()

Cómo puedes intuir, los plugins se van a instalar en la carpeta ~/.vim/plugged. La carpeta .vim es muy importante ya que es dónde por defecto VIM lee al iniciarse, cargando todo lo que ella contenta.

Lo único que queda para que ese código quede un poco más elegante es comprobar si tenemos instalado Plug o no e instalarlo en este último caso cada vez que iniciemos nuestro VIM. Para ello, antes de la carga de los plugins, pondremos el siguiente código en nuestro .vimrc:

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

Manejo de Plug

Una vez que tengamos Plug instalado, su manejo es sencillo y puede ser de utilidad si queremos instalar algún plugin sin tener que reiniciar VIM. Comandos útiles son:

  • PlugStatus: Analiza los plugins en busca de actualizaciones.
  • PlugUpdate: Actualiza los plugins instalados.
  • PlugUpgrade: Actualiza Plug en sí mismo.

Y ya está. Fácil, ¿no?

Plugins recomendados

No quiero terminar esta entrega sin recomendarte unos cuantos plugins con los que potenciar VIM y probar Plug.

NERDTree: Todo IDE requiere de un explorador de archivos. Aquí es dónde entra el archiconocido NERDTree. Una vez que lo instales, puedes llamar al comando NERDTreeToggle para abrirlo y cerrarlo.

CtrlP: CtrlP es, básicamente, un buscador de archivos muy potente. Es capaz de buscar recursivamente entre los archivos del directorio de trabajo actual… ¡Pero también entre los buffers que tengas abiertos en un momento dado! Con el comando CtrlP buscarás entre los archivos y con CtrlPBuffer buscarás el buffer que tenga abierto dicho archivo. Se abrirá una lista de coincidencias que irá filtrando conforme teclees. Si quieres que la cadena de búsqueda tenga en cuenta las mayúsculas solo tienes que usarlas, es decir, si escribes todo en minúsculas buscará el archivo sin importar cómo esté escrito.

GitGutter: Para los que trabajamos con git, GitGutter es muy útil. Se trata de un chivato de cambios en el archivo que tengamos abierto respecto al repositorio. Está muy bien para ver de una pasada cuanto hemos tocado el archivo.

Estos tres vienen de la mano: base16, Airline y Airline themes. Los he puesto juntos porque son pequeñas mejoras estéticas (aunque no por ello dejan de ser funcionales, todo sea dicho…)
Base16 es un conjunto de esquemas de colores diseñados para programadores. Yo actualmente uso uno llamado gruvbox-dark-medium, de tonos marrones bastante otoñal. De alguna manera, me ayuda a mantenerme relajado mientras desarrollo.
Airline es una barra de estado que nos muestra vistosamente el modo en el que se encuentra actualmente el VIM además de unas cuantas estadísticas del archivo que actualmente tengamos abierto como el número de líneas, la codificación, el tipo de archivo, etc.
Airline Themes no son más que esquemas de colores bonitos para Airline. Yo tengo puesto el de base16 para que adquiera los mismo colores que el esquema de colores establecido usando base16 sean usados para colorear la barra de estado.

Conclusión

Cómo puede ver, VIM es mucho más de lo que se ve a simple vista. Además, al ser un editor minimalista, ayuda a estar más presente a la hora de escribir tu código. Sin florituras. Centrándose en lo que importa de verdad: tu código.

¿Qué te ha parecido? ¿Le darás un tiento a VIM? ¿Pondrías algún otro plugin? ¡Coméntanos lo que quieras!

Foto: New-Poker-II_03 de tc_manasan


Sobre el autor

Juanma Cabello   

Fullstack #php developer en Freepik y organizador de @betabeersMLG