Como abrir arquivos em janelas divididas verticalmente / horizontalmente no Vim a partir da linha de comando


400

Deve haver uma maneira, algo como isto:

vim -[option] <file-list>

para abrir arquivos no prompt de comando e não no Vim.

  • dividir janelas verticalmente ou / e horizontalmente
  • em guias separadas

Respostas:


389

Estou assumindo que você quer dizer da linha de comando. De vim --help:

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

Digite isso para abrir arquivos divididos horizontalmente, por exemplo:

vim -o file1.txt file2.txt file3.txt

14
Realmente? Eu nunca tive que fornecer um N.
Cascabel

3
De fato, parece que algo no meu .vimrc está causando o problema. Se eu afastá-lo, -o sem N funcionará como documentado.
Laurence Gonsalves

22
-oé como :split, -Oé como:vsplit
Evgeni Sergeev

@Cascabel -whatever[N]significa que Né opcional e pode ser omitido, eu acredito que deriva do padrão sintaxe EBNF
user3338098

@ user3338098 Acho que pode ter havido um comentário excluído aqui; O comentário de Laurence "De fato ..." implica que estava causando problemas quando omitido.
Cascabel

441

Ctrl+ W, S(maiúscula) para divisão horizontal

Ctrl+ W, v(minúscula) para divisão vertical

Ctrl+ W, Qpara fechar um

Ctrl+ W, Ctrl+ Wpara alternar entre janelas

Ctrl+ W, J(XOR K, H, L) para mudar para a janela adjacente (intuitivamente para cima, baixo, esquerda, direita)


10
Para alternar telas, pressione Ctrl-we, em seguida, up arrowou down arrowpara alternar telas.
Eric Leschinski 17/10/12

7
@EricLeschinski, eu prefiro ctrl+w ctrl+wpara percorrer as janelas como teclas de seta sentir um pouco anti-vi
Lucas

6
Ah, mas você pode usar movimentos regulares do vim, por exemplo, ctrl+w jpara pular para o buffer abaixo do atual.
Mitcak

4
:qtambém fecha a janela
Alexandre Bourlier

1
Ctrl + w para alternar entre janelas não parece funcionar no terminal mac. Ctrl + w, w faz embora
slashdottir

325

Ao executar o vim:

  1. :sp filename para uma divisão horizontal
  2. :vsp filenameou :vs filenamepara uma divisão vertical

61
Isso não responde à pergunta levantada ... mas com certeza me ajudou: D Obrigado!
Abel

1
Muito obrigado por isso. É exatamente o que eu preciso!
Mapcuk

7
obrigado, exatamente o que eu estava procurando. Eu também:set splitright
zack

4
ctrl-ww para comutação entre divisões
Nerrve

:vsplit filenameé o mesmo que :vsp filenamee :vs filename, mas talvez um pouco mais fácil de lembrar para algumas pessoas
b_dev

21

outro truque interessado é o argumento CLI -p - que os abre em abas separadas para versões recentes do vim e gvim.

gvim -p file1.txt file2.txt

1

Outro truque útil que acabei de descobrir é que você pode usar caracteres curinga na lista de arquivos para abrir vários arquivos. Digamos que você queira abrir file1.txt, file2.txt e file3.txt em guias separadas, mas não sinta vontade de digitar tudo isso, basta fazer o seguinte:

vim -p file*

Freqüentemente me vejo precisando abrir muitos arquivos com um prefixo semelhante, e isso tem sido bastante útil


12
Isso não tem a ver com o próprio Vim, mas com o shell que você está usando. É a concha que expande os globs.
Kazark 24/08/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.