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