Vitaminas para Vim: Plugins, resaltado de color y autocompletado
Hace un tiempo os hablé de cómo instalar la última versión de Vim en Linux y de sus ventajas frente al clásico vi. Sin embargo, si usáis Vim recién instalado de serie para vuestros proyectos o para scripts del día a día, seguro que habéis notado que se queda un poco desfasado en comparación con un IDE moderno: falta un autocompletado, un resaltado de sintaxis vistoso o navegación ágil por archivos, por poner algunos ejemplos
En esta entrada voy a ir directo al grano: vamos a ver cómo instalar un gestor de plugins ligero (vim-plug), cómo ponerle un tema de color decente y cómo configurar autocompletado IntelliSense para lenguajes como Python y C usando coc.nvim
Al final de la entrada os dejaré un par de archivos de prueba para que lo testeéis vosotros mismos y podáis ver la magia en directo. ¡Vamos a ello!

Logo oficial de Vim
Un gestor de plugins: vim-plug
Para no volvernos locos gestionando carpetas a mano, lo ideal es usar un gestor de plugins. Mi recomendación personal por ligereza y sencillez es vim-plug
Para instalarlo en GNU/Linux (Debian, Ubuntu, CentOS, Rocky Linux, Arch, etc.), tan solo abrimos la terminal y ejecutamos este curl
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Con esto ya tenemos listo el motor. Ahora solo nos falta indicarle en nuestro archivo de configuración ~/.vimrc qué plugins queremos cargar.
Resaltado de sintaxis y tema visual
Para no dejarte los ojos con los colores por defecto del terminal, vamos a instalar un paquete de resaltado para cientos de lenguajes (vim-polyglot), un tema muy elegante inspirado en Atom (onedark.vim) y una barra de estado informativa (vim-airline).
Abre (o crea) el archivo ~/.vimrc:
vim ~/.vimrc
¿Vim abriendo el fichero de configuración de vim, para modificar vim, madre mía, eso creará una paradoja espacio temporal?
Ahora, dentro del fichero, escribimos:
"" --- INICIO DE PLUGINS --- call plug#begin('~/.vim/plugged') "" Resaltado de sintaxis y colores Plug 'sheerun/vim-polyglot' Plug 'joshdick/onedark.vim' Plug 'vim-airline/vim-airline' call plug#end() " --- FIN DE PLUGINS --- " Configuración básica de UI syntax on set number set termguicolors colorscheme onedark let g:airline_powerline_fonts = 1
Guardamos y salimos
Ahora la primera que entremos a vim, nos dará algún mensaje de error, esto es normal, porque falta instalar los plugins.
Al acceder a vim, escribimos «:» y luego: «PluginInstall«, de esta manera se instalarán los plugins que hemos indicado en el fichero de configuración.
Autocompletado inteligente con CoC (Conquer of Completion)
Para lograr un autocompletado al estilo VS Code pero dentro de Vim, la mejor opción hoy en día es coc.nvim Funciona mediante Language Server Protocol (LSP), lo que significa que analiza el código en tiempo real, detecta errores y ofrece sugerencias reales (no solo palabras repetidas del archivo).
Requisito previo
coc.nvim necesita Node.js (versión 16 o superior). Puedes instalarlo desde el gestor de paquetes de tu distro:
# En Debian / Ubuntu / Mint sudo apt update sudo apt install -y nodejs npm # En RHEL / Rocky Linux / Fedora sudo dnf install -y nodejs npm # En Arch Linux sudo pacman -S nodejs npm
Instalar última versión de Vim
Puede que en nuestro sistema no tengamos la última versión de vim, para solventarlo, podemos usar las fuentes oficiales y compilar, así:
#Instalar dependencias de compilación sudo dnf install -y gcc make ncurses-devel git # En RHEL/Rocky/CentOS sudo apt install -y build-essential libncurses-dev git # En Debian/Ubuntu #Clonar el repositorio oficial de Vim git clone https://github.com/vim/vim.git /tmp/vim cd /tmp/vim #Compilar e instalar en /usr/local ./configure --prefix=/usr/local make -j$(nproc) sudo make install
Ahora quedará vim, en la última versión en la ruta /usr/local/bin/vim
Podemos añadir un alias, para utilizar por defecto esa versión y no la que viene en el sistema. Para que sea solo para nuestro usuario, añadimos al final de ~/.bashrc, justo al final:
alias vim='/usr/local/bin/vim'
Guardamos y salimos. Si queremos que afecte a todos los usuarios, debemos hacer lo mismo, pero al final del fichero /etc/bashrc
Añadir coc.nvim a ~/.vimrc
Modificamos el archivo ~/.vimrc para añadir el plugin y la configuración básica de teclado (para aceptar la sugerencia con la tecla Enter o movernos con Tab):

Contenido de .vimrc
Instalar los servidores de lenguaje (Language Servers)
Una vez guardado el ~/.vimrc, abrimos Vim e instalamos los plugins ejecutando:
:PlugInstall
Verás una pantalla dividida instalando todo automáticamente. Cuando termine, ejecuta dentro de Vim los siguientes comandos para dar soporte a Python y C/C++:
#Para Python :CocInstall coc-pyright #Para C o C++ :CocInstall coc-clangd #Si trabajas con Kubernetes o Docker está es buenísima para los yaml :CocInstall coc-yaml
¡IMPORTANTE!, si al instalar te aparece el error: «coc-pyright crypto is not defined «, es un problema de la versión de NodeJS.
Para solventarlo:
export NODE_OPTIONS="--experimental-global-webcrypto"
Para que quede de forma permanente, lo debemos añadir en ~/.bashrc
Nota: Para C/C++ es recomendable tener instalado clangd en el sistema con sudo apt install clangd o el equivalente en tu distro
El archivo ~/.vimrc definitivo (Listo para usar)
Para hacértelo todavía más fácil, aquí tienes la configuración unificada de ~/.vimrc.
Os lo pongo en un pantallazo, porque WordPress se vuelve un poco loco al meter estos códigos y no interpreta bien los caracteres:

Contenido .vimrc ampliado
Algunos ejemplo de prueba
Para que podáis ver cómo queda, os dejo algunos pantallazos.
Ejemplo de python
El código en Python
import os def saludar_usuario(nombre: str) ->: None: print(f"Hola {nombre}, bienvenido a Ochobits hacen un byte") if __name__ == "__main__": # Prueba escribir 'os.p' o 'sys.' aquí para ver el autocompletado de coc-pyright direct = os.path saludar_usuario("Lector")
Al escribir os.path. o sys., se debería desplegar el menú emergente con las funciones disponibles y sus tipos de retorno.

Ejemplo de la ayuda al añadir un librería para Python
Una vez finalizado, quedaría así:

Código en Python ya finalizado
Ejemplo de C
El código en C
#include <stdio.h> #include <string.h> struct Servidor { char ip[16]; int puerto; }; int main() { struct Servidor s1; strcpy(s1.ip, "10.10.100.1"); s1.puerto = 8080; printf("Conectando a %s:%d\n", s1.ip, s1.puerto); return 0; }
Al escribir s1. saldrán los miembros de la estructura (ip, puerto), y al escribir printf, verás los tipos de argumentos exigidos. También puedes pulsar Ctrl+N para capturar el árbol de directorios lateral de NERDTree.
Quedaría así:

Así quedaría el código escrito en C
Resumen y conclusión
Con estos sencillos pasos hemos transformado Vim en una herramienta ágil y moderna, manteniendo toda la velocidad de la terminal sin renunciar a las comodidades del autocompletado y una estética cuidada.
¿Qué os parece? ¿Usáis otros plugins o preferís mantenerlo aún más simple? Podéis dejar vuestra opinión en los comentarios.


Comentarios Recientes