Ответы:
Это можно сделать без плагина с помощью w
команды, поэтому содержимое буфера можно использовать в команде оболочки:
:w !diff -au "%" - > changes.patch
( %
заменяется путем пути редактируемого файла, -
считывает буфер из stdin)
diff -u "%" -
поскольку diff
понимает черту как значение, прочитанное с stdin
Вы также можете отфильтровать буфер, diff
используя %!
синтаксис:
:%! diff -au "%" -
Это заполнит буфер diff, а не записывает его на диск; Вы можете захотеть установить, readonly
чтобы случайно не заглушить оригинал (OTOH, это не должно быть серьезной проблемой, потому что у вас есть файл с контролем версий, верно? ). Конечно, полезно иметь обратную команду:
:%! patch -o - "%"
Это преобразует ваш diff обратно в измененный файл.