Як зберегти зміни до свого буфера vim як файл виправлення?


21

Чи є спосіб зберегти зміни, які я вніс у свій буфер vim як патч-файл для вихідного файлу, не зберігаючи його як окремий файл та використовуючи diff?


2
Існує новий бета-сайт SE для Vi і Vim , можливо, ви захочете перевірити це.
Рофло

Відповіді:


21

Це можна зробити без плагіна за допомогою wкоманди, тому вміст буфера може використовуватися в команді shell:

:w !diff -au "%" - > changes.patch

( %замінюється шляхом редагування файлу, -зчитує буфер зі stdin)


2
Ви можете використовувати, diff -u "%" -оскільки diffрозуміє тире як значення, прочитане з stdin
roaima

1

Ви також можете фільтрувати буфер за diffдопомогою %!синтаксису:

:%! diff -au "%" -

Це заповнить буфер різницею, а не записує його на диск; ви можете встановити readonlyтак, щоб ви не випадково не зациклювались на оригіналі (OTOH, це не повинно бути серйозною проблемою, оскільки у вас є файл під контролем версій, правда? ). Звичайно, це допомагає мати зворотну команду:

:%! patch -o - "%"

Це перетворює ваш diff назад у модифікований файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.