Odpowiedzi:
Można to zrobić bez wtyczki za pomocą w
polecenia, więc zawartość bufora można wykorzystać w poleceniu powłoki:
:w !diff -au "%" - > changes.patch
( %
jest zastąpiony ścieżką edytowanego pliku, -
odczytuje bufor ze standardowego wejścia)
diff -u "%" -
ponieważ diff
rozumie myślnik jako znaczenie czytane ze stdin
Możesz także przefiltrować bufor diff
używając %!
składni:
:%! diff -au "%" -
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:
:%! patch -o - "%"
To przekształca twój plik różnicowy z powrotem w zmodyfikowany plik.