Vim + Tmux: El Dúo Dinámico
Si Vim es tu editor, Tmux es tu escritorio. Tmux es un "multiplexor de terminales". ¿Qué significa eso? Que te permite tener múltiples sesiones, ventanas y paneles dentro de una sola terminal. Juntos, Vim y Tmux crean un entorno de desarrollo increíblemente potente y ligero.
¿Por qué usarlos juntos?
Imagina que estás editando código en Vim en un panel, tienes el servidor corriendo en otro panel al lado, y una consola de git en una ventana separada. Todo esto sin tocar el ratón y persistente (puedes desconectarte y volver más tarde y todo seguirá igual).
Conceptos Básicos de Tmux
Tmux se maneja con un "prefijo" (por defecto Ctrl + b) seguido de una tecla.
Gestión de Paneles (Splits)
Ctrl + bluego%: Divide verticalmente.Ctrl + bluego": Divide horizontalmente.Ctrl + bluegoflechas: Moverse entre paneles.
Gestión de Ventanas
Ctrl + bluegoc: Crear nueva ventana.Ctrl + bluegon: Siguiente ventana.Ctrl + bluegop: Ventana anterior.
Navegación Fluida: Vim-Tmux-Navigator
Uno de los mayores problemas al principio es que moverse entre paneles de Vim (Ctrl + w + h/j/k/l) es diferente a moverse entre paneles de Tmux.
Para solucionar esto, existe un plugin maravilloso llamado vim-tmux-navigator.
Configuración
- En Vim (
.vimrcoinit.lua): Instala el pluginchristoomey/vim-tmux-navigator. - En Tmux (
.tmux.conf): Añade la configuración para reconocer si estás en Vim o en Tmux.
Con esto configurado, podrás usar Ctrl + h/j/k/l para moverte fluidamente entre tus archivos abiertos en Vim Y tus paneles de Tmux. ¡Es magia!
Flujo de Trabajo Típico
- Abres tu terminal.
- Creas una sesión:
tmux new -s proyecto. - Divides la pantalla:
Ctrl + b+%. - En la izquierda abres Vim:
vim .. - En la derecha corres tus tests o servidor.
Conclusión
Tmux potencia a Vim dándole capacidades de gestión de ventanas que rivalizan con cualquier IDE moderno. Pero hablando de IDEs... ¿y si pudiéramos convertir Vim en un IDE completo con autocompletado, explorador de archivos y más? Eso es lo que veremos en la siguiente lección con AstroNvim.