Comecei a usar o vimdiff hoje e queria fazer algumas das coisas que eu tenho como garantidas nos editores de diff baseados no Windows (como expandir / recolher uma seção de diff, ter expansão de arquivo completa / diffs apenas com 3 linhas de contexto acima ou abaixo etc.). Atualmente, conheço apenas os seguintes comandos:
Atalhos do teclado:
do - Obtenha alterações de outra janela na janela atual.
dp - Coloque as alterações da janela atual na outra janela.
]c - Salte para a próxima alteração.
[c - Salte para a alteração anterior.
CTRL+ W, w- Alterne para a outra janela dividida ( CTRL+ W, CTRL+ Wfaz a mesma coisa, caso você solte a CTRLtecla um pouco mais tarde)
Alguém poderia me indicar a direção certa para que eu pudesse replicar recursos semelhantes?
Seria bom se eu pudesse expandir / contrair linhas em torno das diferenças, por exemplo.
Respostas:
Além dos que você mencionou, só uso frequentemente quando diferir o seguinte:
:diffupdate
:diffu
-> recalcular o diff, útil quando, após fazer várias alterações, o vim não mostra mais alterações mínimas. Note que só funciona se os arquivos foram modificados dentro do vimdiff. Caso contrário, use::e
para recarregar os arquivos se eles foram modificados fora do vimdiff.:set noscrollbind
-> desabilite temporariamente a rolagem simultânea nos dois buffers, reative a:set scrollbind
rolagem.A maior parte do que você pediu é dobragem: o capítulo do manual do usuário do vim sobre dobragem . Fora das diffs, em algum momento uso:
zo
-> dobra aberta.zc
-> feche a dobra.Mas você provavelmente será melhor servido por:
zr
-> redução do nível de dobra.zm
-> mais um nível dobrável, por favor.ou até:
zR
-> Reduza completamente a dobra, eu disse !.zM
-> dobre a maioria!A outra coisa que você pediu, use n linhas de dobra, pode ser encontrada na seção do manual de referência do vim, sobre as opções , na seção diff :
set diffopt=<TAB>
, atualize ou adicionecontext:n
.Você também deve dar uma olhada na seção do manual do usuário no diff .
fonte
:set noscrollbind
entrar em vigor, também deve ser:set nocursorbind
usado o que não é o padrão. Portanto, as duas opções devem ser ajustadas.configure vimdiff para ignorar maiúsculas e minúsculas
Tendo iniciado o vim diff com
Eu acho que irritantemente um arquivo tem palavras-chave do MySQL em minúsculas e as outras maiúsculas mostrando diferenças em praticamente todas as outras linhas
isso atualiza a tela dinamicamente e você pode facilmente desligá-lo novamente
fonte
Na verdade, se você fizer
Ctrl+W W
, não precisará adicionar esse extraCtrl
. Faz a mesma coisa.fonte
ctrl + w, w, conforme mencionado, pode ser usado para navegar de um painel para outro.
Agora você pode selecionar uma alteração específica sozinha e colá-la no outro painel da seguinte maneira. Aqui estou dando um exemplo, como se eu quisesse alterar meu pedaço de código do painel 1 para o painel 2 e atualmente meu cursor está no painel1
Use Shift-v para destacar uma linha e use as teclas para cima ou para baixo para selecionar o trecho de código necessário e continue na etapa 3 escrita abaixo para colar suas alterações no outro painel.
Use o modo visual e altere-o
1 clique em 'v', você será direcionado para o modo visual 2 use a tecla para cima ou para baixo para selecionar o código necessário 3 clique em, tecla de escape Esc '4 Agora use' yy 'para copiar ou' dd 'para cortar a alteração 5 faça' ctrl + w, w 'para navegar para o painel2 6 clique em' p 'para colar suas alterações onde você precisar
fonte