Frage Nimm diff von zwei vertikal geöffneten Fenstern in Vim


Ich habe zwei Dateien geöffnet. Sie werden im vertikalen Modus neben dem nächsten geöffnet. Kann ich diese beiden Dateien sofort vergleichen, ohne Vim zu verlassen oder zu schließen?


58
2017-12-08 08:35


Ursprung


Antworten:


Um zu beginnen, auf allen sichtbaren Fenstern zu diffundieren:

:windo diffthis

was ausführt :diffthis auf jedem Fenster.

Um den Diff-Modus zu beenden:

:diffoff!

(Das ! macht diffoff gilt für alle Fenster des aktuellen Tabs - es wäre schön, wenn diffthis hatte die gleiche Funktion, aber es tut es nicht.)


88
2017-12-08 10:04



in jedem der Fenster, die Sie diff eingeben möchten:

:diffthis

Wenn Sie alle geöffneten Fenster vergleichen möchten, können Sie Folgendes tun:

:windo diffthis

(windo wendet den Befehl auf alle geöffneten Fenster an)


15
2017-12-08 08:40



Im Anschluss an die früheren Antworten

  • :windo difft (kurz für diffthis) startet den Diff Modus in allen geöffneten Fenstern.
  • :windo diffo (kurz für diffoff) stoppt den diff-Modus in allen geöffneten Fenstern.

Ich habe die folgenden Abbildungen in meinem vimrc zu erleichtern:

command! Difft windo diffthis
command! Diffo windo diffoff

1
2018-06-29 17:45



Im Anschluss an die früheren Antworten habe ich das von @cxw bereitgestellte Mapping angepasst. Das folgende Mapping schließt automatisch NERDTree und verteilt die geöffneten Fenster. Es spielt keine Rolle, ob NERDTree in der Nähe ist, es funktioniert genauso. Ich mache das ziemlich oft, also rettete es mich ziemlich lange.

command! Difft NERDTreeClose | windo diffthis

0
2018-06-06 11:17