Nehmen Sie zwei vertikal geöffnete Fenster in Vim


101

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

Antworten:


153

So unterscheiden Sie sich in allen sichtbaren Fenstern:

:windo diffthis

welches :diffthisin jedem Fenster ausgeführt wird.

So beenden Sie den Diff-Modus:

:diffoff!

(Die !Marken diffoffgelten für alle Fenster der aktuellen Registerkarte. Es wäre schön, wenn Sie diffthisdieselbe Funktion hätten, aber nicht.)


Der :windoBefehl macht es noch besser. Vielen Dank. Ich werde es abbilden, um es einfacher zu machen.
Fatih Arslan

1
Das ist eine gute Antwort, aber beachten Sie, dass das Minibufexplorer-Fenster vor diesem Vorgang geschlossen werden sollte, wenn es geöffnet wird. Andernfalls zeigt diff falsche Ergebnisse an.
Baldrs

Man kann einen Alias ​​verwenden :windo difft[this]. Ref::help diff
DmitrySandalov

@FatihArslan ,: windo diffthis macht in meinem Fall nichts, sondern lässt nur die linke graue Spalte neben den Zeilennummern. Ich habe zwei verschiedene Vim-Dateien geöffnet.
earik87

22

Geben Sie in jedem der Fenster, die Sie unterscheiden möchten, Folgendes ein:

:diffthis

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

:windo diffthis

( windowendet den Befehl auf alle geöffneten Fenster an)


6

Weiterverfolgung der 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 Zuordnungen in meinem vimrc, um es einfacher zu machen:

command! Difft windo diffthis
command! Diffo windo diffoff

3

In Anlehnung an die früheren Antworten habe ich das von @cxw bereitgestellte Mapping angepasst. Das folgende Mapping schließt NERDTree automatisch und unterscheidet die geöffneten Fenster. Es spielt keine Rolle, ob NERDTree in der Nähe ist, es funktioniert genauso. Ich mache das ziemlich oft, deshalb habe ich mir ziemlich viel Zeit gespart.

command! Difft NERDTreeClose | windo diffthis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.