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