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?
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.
Antworten:
Dies ist mit dem
w
Befehl auch ohne Plugin möglich , sodass der Pufferinhalt in einem Shell-Befehl verwendet werden kann:(
%
wird durch den Pfad der zu bearbeitenden Datei ersetzt,-
liest den Puffer von stdin)quelle
diff -u "%" -
dadiff
ein Bindestrich als Bedeutung von stdinSie können den Puffer auch
diff
mithilfe der folgenden%!
Syntax filtern :Dadurch wird der Puffer mit dem Diff gefüllt und nicht auf die Festplatte geschrieben. Möglicherweise möchten
readonly
Sie 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:Dadurch wird Ihr Diff wieder in die geänderte Datei umgewandelt.
quelle