Comparando dois arquivos no Vim


63

É possível visualizar dois arquivos lado a lado no Vim? Em caso afirmativo, como posso configurar meu editor para fazer isso e existe uma maneira de alternar diffentre os dois arquivos no Vim?

Estou ciente dos comandos :nexte :prev, mas não é isso que estou procurando. Seria realmente bom ver os dois arquivos em conjunto.

Respostas:


43

Abra a vista lado a lado:

Ctrl+w v

Mudar entre eles:

Ctrl+w h or l

Faça o checkout do comando vimdiff , parte do pacote vim, se você quiser uma visão semelhante a diff:

vimdiff file1.txt file2.txt

2
Existe uma maneira de bloquear a rolagem entre as duas janelas?
Zaid

11

11
Eu costumo usar "diff file1 file2" na linha de comando.
djangofan

2
@Zaid Use vimdiff file1.txt file2.txt(veja abaixo)
Eduardo Cuomo

42

Você também pode abrir o vim no modo de tela dividida, com a -Oopção: -

vim -O file1 [file2 ...]

Para ativar o modo diff, você precisa executar o :diffthiscomando em cada painel.

Outro cenário de caso de uso é se você já tem um arquivo aberto no vim e deseja abrir e compará-lo com outro. Em seguida, você pode usar os seguintes comandos do vim: -

:vs otherfile (open otherfile in vertical split screen)
:diffthis (turn on diff mode in original file)
Ctrl+w l  (swap to newly opened file)
:diffthis (turn on diff mode in opened file)

Você pode desativar o modo diff em cada painel com o comando vim :diffoff.

EDIT
E o outro padrão que não foi mencionado: -

vim -d file1 [file2 ...]

Isso é equivalente a ligar vimdiffdiretamente.


11
:windo :diffthispode ser usado em vez dos três últimos comandos.
Bernhard

2

Ou simplesmente abra o primeiro arquivo no VIM e :vert diffsplit file2 :vertdivida a tela na vertical.

diffsplit faz um diff e divide os arquivos e rola os bloqueios.

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.