Czy istnieje sposób na zapisanie zmian, które wprowadziłem w buforze vim jako plik łatki dla oryginalnego pliku, bez zapisywania go jako osobnego pliku i używania diff?
Możesz używać, diff -u "%" -ponieważ diffrozumie myślnik jako znaczenie czytane ze stdin
roaima,
1
Możesz także przefiltrować bufor diffużywając %!składni:
:%! diff -au "%" -
Spowoduje to wypełnienie bufora różnicą zamiast zapisywania go na dysku; możesz ustawić readonlytak, aby przypadkowo nie blokować oryginału (OTOH, nie powinno to stanowić poważnego problemu, ponieważ plik jest pod kontrolą wersji, prawda? ). Oczywiście pomaga mieć odwrotne polecenie:
:%! patch -o - "%"
To przekształca twój plik różnicowy z powrotem w zmodyfikowany plik.
Odpowiedzi:
Można to zrobić bez wtyczki za pomocą
w
polecenia, więc zawartość bufora można wykorzystać w poleceniu powłoki:(
%
jest zastąpiony ścieżką edytowanego pliku,-
odczytuje bufor ze standardowego wejścia)źródło
diff -u "%" -
ponieważdiff
rozumie myślnik jako znaczenie czytane ze stdinMożesz także przefiltrować bufor
diff
używając%!
składni:Spowoduje to wypełnienie bufora różnicą zamiast zapisywania go na dysku; możesz ustawić
readonly
tak, aby przypadkowo nie blokować oryginału (OTOH, nie powinno to stanowić poważnego problemu, ponieważ plik jest pod kontrolą wersji, prawda? ). Oczywiście pomaga mieć odwrotne polecenie:To przekształca twój plik różnicowy z powrotem w zmodyfikowany plik.
źródło