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