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
Modo
Comando
Acción
N
<Ctrl-w>s
Split horizontal (misma ventana abajo)
N
<Ctrl-w>v
Split vertical (misma ventana a la derecha)
C
:sp {archivo}
Split horizontal abriendo un archivo
C
:vsp {archivo}
Split vertical abriendo un archivo
C
:new
Split horizontal con buffer vacío
C
:vnew
Split vertical con buffer vacío
N
<Ctrl-w>q
Cierra la ventana actual
N
<Ctrl-w>o
Cierra todas las ventanas excepto la actual
C
:only
Equivalente a <Ctrl-w>o
Navegar entre ventanas
Modo
Comando
Acción
N
<Ctrl-w>h
Mueve el foco a la ventana de la izquierda
N
<Ctrl-w>j
Mueve el foco a la ventana de abajo
N
<Ctrl-w>k
Mueve el foco a la ventana de arriba
N
<Ctrl-w>l
Mueve el foco a la ventana de la derecha
N
<Ctrl-w>w
Cicla al siguiente split en orden
N
<Ctrl-w>W
Cicla al split anterior
N
<Ctrl-w>p
Salta al split anteriormente activo
N
<Ctrl-w>t
Salta al split superior izquierdo
N
<Ctrl-w>b
Salta al split inferior derecho
Mover y reordenar ventanas
Modo
Comando
Acción
N
<Ctrl-w>H
Mueve la ventana actual al extremo izquierdo
N
<Ctrl-w>J
Mueve la ventana actual al extremo inferior
N
<Ctrl-w>K
Mueve la ventana actual al extremo superior
N
<Ctrl-w>L
Mueve la ventana actual al extremo derecho
N
<Ctrl-w>r
Rota las ventanas hacia abajo/derecha
N
<Ctrl-w>R
Rota las ventanas hacia arriba/izquierda
N
<Ctrl-w>x
Intercambia la ventana actual con la siguiente
Redimensionar ventanas
Modo
Comando
Acció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
Modo
Comando
Acción
C
:set scrollbind
Activa scroll sincronizado en la ventana actual
C
:set noscrollbind
Desactiva scroll sincronizado
C
:windo set scrollbind
Activa scrollbind en todas las ventanas abiertas
C
:syncbind
Fuerza sincronización inmediata de todas las vistas
Comandos útiles sobre ventanas
Modo
Comando
Acción
C
:windo {cmd}
Ejecuta un comando en todas las ventanas
C
:ball
Abre un split por cada buffer cargado
C
:sba
Igual que :ball en splits horizontales
N
<Ctrl-w>f
Abre 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.