Wie speichere ich die Änderungen in meinem VIM-Puffer als Patch-Datei?


20

Gibt es eine Möglichkeit, die Änderungen, die ich an meinem VIM-Puffer vorgenommen habe, als Patch-Datei für die Originaldatei zu speichern, ohne sie als separate Datei zu speichern und Diff zu verwenden?


2
Es gibt eine neue SE-Beta-Site für Vi und Vim .
Roflo

Antworten:


20

Dies ist mit dem wBefehl auch ohne Plugin möglich , sodass der Pufferinhalt in einem Shell-Befehl verwendet werden kann:

:w !diff -au "%" - > changes.patch

( %wird durch den Pfad der zu bearbeitenden Datei ersetzt, -liest den Puffer von stdin)


2
Sie können verwenden, diff -u "%" -da diffein Bindestrich als Bedeutung von stdin
roaima 11.06.15

1

Sie können den Puffer auch diffmithilfe der folgenden %!Syntax filtern :

:%! diff -au "%" -

Dadurch wird der Puffer mit dem Diff gefüllt und nicht auf die Festplatte geschrieben. Möglicherweise möchten readonlySie festlegen, dass Sie das Original nicht versehentlich beschädigen (OTOH, das sollte kein ernstes Problem sein, da Sie die Datei unter Versionskontrolle haben, oder? ). Natürlich hilft es, den umgekehrten Befehl zu haben:

:%! patch -o - "%"

Dadurch wird Ihr Diff wieder in die geänderte Datei umgewandelt.

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.