it-swarm.com.de

Wie kann man verschiedene Bereiche in Vimdiff ein- und ausblenden?

Ich habe heute begonnen, vimdiff zu verwenden, und wollte einige der Dinge tun, die ich für Windows-basierte Diff-Editoren als selbstverständlich erachtet habe (z. B. Erweitern/Reduzieren eines Diff-Abschnitts, vollständige Dateierweiterung/nur Diffs mit 3 Kontextzeilen über oder unten usw.). Ich kenne derzeit nur die folgenden Befehle:

Tastatürkürzel:

  • do - Änderungen aus einem anderen Fenster in das aktuelle Fenster übernehmen.

  • dp - Übertragen Sie die Änderungen aus dem aktuellen Fenster in das andere Fenster.

  • ]c - Zur nächsten Änderung springen.

  • [c - Zur vorherigen Änderung springen.

  • CTRL+Ww - Wechseln Sie in das andere geteilte Fenster (CTRL+WCTRL+W tut dasselbe für den Fall, dass Sie das loslassen CTRL Schlüssel etwas später)

Könnte mich jemand in die richtige Richtung weisen, damit ich ähnliche Funktionen nachbilden kann?

Es wäre schön, wenn ich zum Beispiel Linien um die Diffs erweitern/reduzieren könnte.

290
TCSGrad

Abgesehen von denen, die Sie erwähnen, verwende ich nur häufig, wenn Sie Folgendes unterscheiden:

  • :diffupdate:diffu -> Berechnen Sie das Diff neu. Dies ist nützlich, wenn nach mehreren Änderungen in vim's keine minimalen Änderungen mehr angezeigt werden. Beachten Sie, dass dies nur funktioniert, wenn die Dateien in vimdiff geändert wurden. Ansonsten verwenden Sie:
    • :e, Um die Dateien neu zu laden, wenn sie außerhalb von vimdiff geändert wurden.
  • :set noscrollbind -> zeitweiliges Deaktivieren des gleichzeitigen Bildlaufs in beiden Puffern, wieder aktiviert durch :set scrollbind Und Bildlauf.

Das meiste, wonach Sie gefragt haben, ist Falten: Kapitel über Falten in der vim-Bedienungsanleitung . Außerhalb von Diffs verwende ich manchmal:

  • zo -> Falte öffnen.
  • zc -> Falz schließen.

Aber Sie werden wahrscheinlich besser bedient von:

  • zr -> Faltniveau reduzieren.
  • zm -> bitte noch eine Faltebene.

oder auch:

  • zR -> Reduziere die Faltung komplett, sagte ich !.
  • zM -> Falte die meisten !.

Das andere, wonach Sie gefragt haben, verwenden Sie n Falzlinien. Sie finden es im Abschnitt siehe Referenzhandbuch zu Optionen über Abschnitt zu Diff :

  • set diffopt=<TAB>, Dann aktualisiere oder füge context:n Hinzu.

Sie sollten sich auch den Abschnitt Benutzerhandbuch zu diff ansehen.

231
ninjalj

setze vimdiff so, dass Groß- und Kleinschreibung ignoriert wird

Nachdem ich mit vim diff angefangen habe

 gvim -d main.sql backup.sql &

Ich finde, dass ärgerlicherweise eine Datei MySQL-Schlüsselwörter in Kleinbuchstaben und die andere in Großbuchstaben enthält, die in praktisch jeder zweiten Zeile Unterschiede aufweisen

:set diffopt+=icase

dadurch wird der Bildschirm dynamisch aktualisiert und Sie können ihn genauso einfach wieder ausschalten

4
zzapper

Eigentlich, wenn Sie Ctrl+W W, Sie müssen dieses zusätzliche Ctrl nicht hinzufügen. Tut das Gleiche.

3
tubbo

strg + w, w kann wie erwähnt zum Navigieren von Fenster zu Fenster verwendet werden.

Jetzt können Sie eine bestimmte Änderung alleine auswählen und wie folgt in das andere Fenster einfügen. Hier gebe ich ein Beispiel, als ob ich meinen Code von Fenster 1 in Fenster 2 ändern wollte, und mein Cursor befindet sich derzeit in Fenster 1

  • Verwenden Sie Umschalt-v, um eine Zeile zu markieren, und verwenden Sie die Auf- oder Ab-Tasten, um den gewünschten Code auszuwählen. Fahren Sie dann mit Schritt 3 fort, um Ihre Änderungen in den anderen Bereich einzufügen.

  • Verwenden Sie den visuellen Modus und ändern Sie ihn dann

    1 Klicken Sie auf 'v', um in den visuellen Modus zu gelangen. 2 Verwenden Sie die Aufwärts- oder Abwärtstaste, um den gewünschten Code auszuwählen. 3 Klicken Sie auf 'Esc'. 4 Verwenden Sie nun 'yy' zum Kopieren oder 'dd' zum Ausschneiden der Änderung. Strg + w, w, um zu Fenster 2 zu navigieren. 6 Klicken Sie auf "p", um Ihre Änderung an der gewünschten Stelle einzufügen

0
Pratheusha KK