Cómo abrir archivos en ventanas divididas verticalmente / horizontalmente en Vim desde la línea de comando

400

Debe haber una manera, algo como esto:

vim -[option] <file-list>

abrir archivos desde el símbolo del sistema y no desde Vim.

  • dividir ventanas verticalmente u / y horizontalmente
  • en pestañas separadas
Andrei Chikatilo
fuente

Respuestas:

389

Supongo que te refieres a la línea de comando. De vim --help:

-o[N]                Open N windows (default: one for each file)
-O[N]                Like -o but split vertically

Escriba esto para abrir archivos divididos horizontalmente, por ejemplo:

vim -o file1.txt file2.txt file3.txt
Laurence Gonsalves
fuente
14
De Verdad? Nunca he tenido que proporcionar una N.
Cascabel
3
De hecho, parece que algo en mi .vimrc está causando el problema. Si lo muevo a un lado, -o sin N funciona como se documenta.
Laurence Gonsalves
22
-oes como :split, -Oes como:vsplit
Evgeni Sergeev
@Cascabel -whatever[N]significa que Nes opcional y puede omitirse, creo que se deriva de la sintaxis
user3338098
@ user3338098 Creo que puede haber habido un comentario eliminado aquí; El comentario de Laurence "De hecho ..." implica que estaba causando problemas cuando se omite.
Cascabel
441

Ctrl+ W, S(mayúscula) para división horizontal

Ctrl+ W, v(minúsculas) para división vertical

Ctrl+ W, Qpara cerrar uno

Ctrl+ W, Ctrl+ Wpara cambiar entre ventanas

Ctrl+ W, J(XOR K, H, L) para cambiar a la ventana adyacente (intuitivamente hacia arriba, abajo, izquierda, derecha)

LB40
fuente
10
Para cambiar de pantalla, presione Ctrl-wy luego up arrowo down arrowpara cambiar de pantalla.
Eric Leschinski
77
@EricLeschinski, prefiero ctrl+w ctrl+wrecorrer las ventanas mientras las teclas de flecha se sienten un poco anti-vi
Lucas
66
Ah, pero puedes usar movimientos vim regulares, por ejemplo, ctrl+w jpara saltar al búfer debajo del actual.
mitjak
44
:qtambién cierra ventana
Alexandre Bourlier
1
Ctrl + w para cambiar de ventana no parece funcionar en la terminal de Mac. Ctrl + w, w sí
slashdottir
325

Mientras ejecuta vim:

  1. :sp filename para una división horizontal
  2. :vsp filenameo :vs filenamepara una división vertical
Taylor Leese
fuente
61
Esto no responde la pregunta planteada ... pero SEGURO me ayudó: D ¡Gracias!
Abel
1
Muchas gracias por eso ¡Es exactamente lo que necesito!
mapcuk
77
gracias, justo lo que estaba buscando. Yo también:set splitright
zack
44
ctrl-ww para cambiar entre divisiones
Nerrve
:vsplit filenamees lo mismo que :vsp filenamey :vs filename, pero quizás sea un poco más fácil de recordar para algunas personas
b_dev
21

Otro truco interesante es el argumento CLI -p, que los abre en pestañas separadas para versiones recientes de vim y gvim.

gvim -p file1.txt file2.txt
dls
fuente
1

Otro truco útil que acabo de descubrir es que puedes usar comodines en la lista de archivos para abrir varios archivos. Digamos que desea abrir file1.txt, file2.txt y file3.txt, todo en pestañas separadas, pero no tiene ganas de escribir todo lo que puede hacer:

vim -p file*

Frecuentemente encuentro que necesito abrir muchos archivos con un prefijo similar, y esto ha sido bastante útil

Brent
fuente
12
Eso no tiene que ver con Vim en sí, sino con el shell que está utilizando. Es el caparazón que expande los globos.
Kazark