Bagaimana cara menyimpan perubahan ke buffer vim saya sebagai file patch?


21

Apakah ada cara untuk menyimpan perubahan yang saya buat pada buffer vim sebagai file tambalan untuk file asli, tanpa menyimpannya sebagai file terpisah dan menggunakan diff?


2
Ada situs beta SE baru untuk Vi dan Vim , Anda mungkin ingin memeriksanya.
Roflo

Jawaban:


21

Mungkin untuk melakukan ini tanpa plugin menggunakan wperintah, sehingga konten buffer dapat digunakan dalam perintah shell:

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

( %diganti dengan path file yang sedang diedit, -membaca buffer dari stdin)


2
Anda dapat menggunakan diff -u "%" -karena diffmemahami tanda hubung sebagai makna dibaca dari stdin
roaima

1

Anda juga bisa memfilter buffer melalui diff menggunakan %!sintaks:

:%! diff -au "%" -

Ini akan mengisi buffer dengan diff, daripada menulisnya ke disk; Anda mungkin ingin mengatur readonlyagar Anda tidak merusak dokumen asli secara tidak sengaja (OTOH, itu seharusnya tidak menjadi masalah serius karena Anda memiliki file di bawah kontrol versi, kan? ). Tentu saja, ini membantu untuk memiliki perintah terbalik:

:%! patch -o - "%"

Itu mengubah kembali diff Anda menjadi file yang dimodifikasi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.