Faça o vimdiff mostrar o arquivo inteiro

37

Como o vimdiff pode mostrar todo o conteúdo dos arquivos que estão sendo diferenciados? Eu gostaria dos destaques coloridos das diferenças, mas ainda gostaria de ver os arquivos inteiros, ou seja, as partes idênticas também.

metáfora pitônica
fonte

Respostas:

48

vimdiffdefine foldmethod diffpara que todas as linhas inalteradas sejam dobradas. Por dentro, vimdiffvocê pode abrir todas as dobras pressionando zR.

Se você deseja mostrar sempre o contexto completo, pode aumentar o número de linhas de contexto desdobradas exibidas para um número grande. No seu ~/.vimrc:

if &diff                             " only for diff mode/vimdiff
  set diffopt=filler,context:1000000 " filler is default and inserts empty lines for sync
endif
Benjamin Bannier
fonte
6
Sim, zRé o caminho a percorrer. Nota: zairá recriar as dobras.
sleske
@sleske zanão fecha, mas fecha zM, como é evidente na resposta de @Thomas.
MycrofD
@MycrofD: Sim. Para ser mais preciso: zafechará uma única dobra (a que está embaixo do cursor); zMfechará todas as dobras. Ambos podem ser úteis.
sleske
Existe alguma opção para aumentar as linhas de contexto desdobradas no próprio comando vimdiff. Isso será útil durante a execução do arquivo de script de shell.
itsraja
Sim, veja vimdoc.sourceforge.net/htmldoc/options.html#'diffopt ', por exemplo, para exibir com 42 linhas de contexto que se pode definir set diffopt+=context:42.
Benjamin Bannier
3

Colocar o cursor na linha que você deseja expandir e pressionar a barra de espaço funciona para mim!

Parece que eu também tive que usar as setas do teclado às vezes.

Nate
fonte