Bagaimana saya bisa melihat perubahan yang dibuat ke buffer yang dimodifikasi sejak penyimpanan terakhir?

Jawaban:

27

Anda menginginkan perintah M-x diff-buffer-with-file. Lihat manual:

diff-buffer-with-file adalah fungsi Lisp kompilasi autoloaded interaktif dalam `diff.el '.

(diff-buffer-with-file &optional BUFFER)

Lihat perbedaan antara BUFFER dan file terkaitnya. Ini membutuhkan program eksternal diffuntuk berada di Anda exec-path.


Anda mungkin juga tertarik dengan highlight-changes-modeyang secara otomatis dan interaktif menyoroti perubahan yang dibuat pada buffer setelah diaktifkan.

PythonNut
sumber
Sepanjang garis highlight-changes-modeada juga diff-hlpaket di GNU ELPA.
Stefan
Ya, tetapi sekarang ini hanya berfungsi untuk menunjukkan perbedaan antara buffer (yang disimpan) dan vcrevisi. Saya bekerja pada diffing buffer (tidak seperti file backingnya) di diff-hl # 33 , tetapi diblokir pada bug di inti Emacs.
PythonNut
Apakah Anda memiliki nomor laporan bug untuk itu?
Stefan
@Stefan, saya belum sempat melakukannya.
PythonNut
Sudah diperbaiki (mungkin) dulu: bekerja di 2019! :)
mistige
13

Perintah ediff-current-file:

ediff-current-file is an interactive autoloaded Lisp function in
`ediff.el'.

(ediff-current-file)

Start ediff between current buffer and its file on disk.
This command can be used instead of `revert-buffer'.  If there is
nothing to revert then this command fails.
Drew
sumber
1
ediff-current-filememiliki beberapa manfaat dibandingkan diff-buffer-with-filejika Anda menginginkan peninjauan interaktif atas perubahan daripada perbedaan biasa. Tinjauan interaktif bahkan memungkinkan untuk mengembalikan beberapa bagian secara selektif, jika Anda akhirnya tidak ingin menyimpannya. Lihat juga emacs.stackexchange.com/a/3778/10614 untuk jawaban yang lebih lengkap.
Stéphane Gourichon