Vim permite dividir el área de trabajo en múltiples ventanas que muestran el mismo u otros buffers simultáneamente. Dominar splits elimina la necesidad de alternar entre archivos a ciegas.


Abreviaciones de modos:
N = Normal | I = Insert | V = Visual | C = Command | VB = Visual Block

Abrir y cerrar splits

ModoComandoAcción
N<Ctrl-w>sSplit horizontal (misma ventana abajo)
N<Ctrl-w>vSplit vertical (misma ventana a la derecha)
C:sp {archivo}Split horizontal abriendo un archivo
C:vsp {archivo}Split vertical abriendo un archivo
C:newSplit horizontal con buffer vacío
C:vnewSplit vertical con buffer vacío
N<Ctrl-w>qCierra la ventana actual
N<Ctrl-w>oCierra todas las ventanas excepto la actual
C:onlyEquivalente a <Ctrl-w>o

Navegar entre ventanas

ModoComandoAcción
N<Ctrl-w>hMueve el foco a la ventana de la izquierda
N<Ctrl-w>jMueve el foco a la ventana de abajo
N<Ctrl-w>kMueve el foco a la ventana de arriba
N<Ctrl-w>lMueve el foco a la ventana de la derecha
N<Ctrl-w>wCicla al siguiente split en orden
N<Ctrl-w>WCicla al split anterior
N<Ctrl-w>pSalta al split anteriormente activo
N<Ctrl-w>tSalta al split superior izquierdo
N<Ctrl-w>bSalta al split inferior derecho

Mover y reordenar ventanas

ModoComandoAcción
N<Ctrl-w>HMueve la ventana actual al extremo izquierdo
N<Ctrl-w>JMueve la ventana actual al extremo inferior
N<Ctrl-w>KMueve la ventana actual al extremo superior
N<Ctrl-w>LMueve la ventana actual al extremo derecho
N<Ctrl-w>rRota las ventanas hacia abajo/derecha
N<Ctrl-w>RRota las ventanas hacia arriba/izquierda
N<Ctrl-w>xIntercambia la ventana actual con la siguiente

Redimensionar ventanas

ModoComandoAcción
N<Ctrl-w>=Iguala el tamaño de todas las ventanas
N<Ctrl-w>+Aumenta la altura de la ventana actual
N<Ctrl-w>-Reduce la altura de la ventana actual
N<Ctrl-w>>Aumenta el ancho de la ventana actual
N<Ctrl-w><Reduce el ancho de la ventana actual
N{n}<Ctrl-w>+Aumenta la altura n líneas
N{n}<Ctrl-w>>Aumenta el ancho n columnas
C:resize {n}Fija la altura de la ventana a n líneas
C:vertical resize {n}Fija el ancho de la ventana a n columnas

Scroll sincronizado

ModoComandoAcción
C:set scrollbindActiva scroll sincronizado en la ventana actual
C:set noscrollbindDesactiva scroll sincronizado
C:windo set scrollbindActiva scrollbind en todas las ventanas abiertas
C:syncbindFuerza sincronización inmediata de todas las vistas

Comandos útiles sobre ventanas

ModoComandoAcción
C:windo {cmd}Ejecuta un comando en todas las ventanas
C:ballAbre un split por cada buffer cargado
C:sbaIgual que :ball en splits horizontales
N<Ctrl-w>fAbre el archivo bajo el cursor en un split
N<Ctrl-w>]Salta a la definición del tag en un split
N<Ctrl-w>^Abre el buffer alternativo en un split

Tips

  • <Ctrl-w>= es el comando más útil después de redimensionar manualmente: restaura el equilibrio sin calcular nada.
  • <Ctrl-w>L convierte un split horizontal en vertical y viceversa con <Ctrl-w>J; útil para reorganizar el layout sin reabrir archivos.
  • :windo set scrollbind seguido de :syncbind es la forma más rápida de comparar dos versiones del mismo archivo en paralelo.
  • <Ctrl-w>p salta al split anterior, no al siguiente en ciclo; ideal para alternar entre exactamente dos ventanas sin repetir <Ctrl-w>w.
  • Prefija con número para redimensionar rápido: 10<Ctrl-w>> añade 10 columnas de ancho de una sola vez.