Як я бачу зміни, внесені до зміненого буфера з моменту останнього збереження?


19

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



На unix.stackexchange.com виникло те саме питання , але з меншими можливостями.
imz - Іван Захарящев

Відповіді:


27

Ви хочете команду M-x diff-buffer-with-file. Дивіться посібник:

diff-buffer-with-file - це інтерактивна автоматично завантажена складена функція Lisp у `diff.el '.

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

Перегляньте відмінності між BUFFER та пов'язаним з ним файлом. Для цього потрібно, щоб зовнішня програма diffбула у вас exec-path.


Вас також може зацікавити, highlight-changes-modeщо автоматично та інтерактивно висвітлює зміни, внесені до буфера після його ввімкнення.


У поєднанні з highlight-changes-modeцим diff-hlпакетом є також GNU ELPA.
Стефан

Так, але зараз він працює лише для того, щоб відображати відмінності між (збереженим) буфером та vcредакцією. Я працював над розменою буфера (на відміну від його резервного файлу) у diff-hl # 33 , але він заблокований на помилку в ядрі Emacs.
PythonNut

Чи є у вас номер помилки для цього?
Стефан

@Stefan, я ще не до цього дійшов.
PythonNut

Виправили (мабуть) давно: працює у 2019 році! :)
mistige

13

Команда 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.

1
ediff-current-fileмає певні переваги, diff-buffer-with-fileякщо ви хочете інтерактивний огляд змін, а не простий розмін. Інтерактивний огляд навіть дозволяє вибірково повернути деякі частини, якщо ви нарешті не захочете їх зберегти. Дивіться також emacs.stackexchange.com/a/3778/10614 для більш повної відповіді.
Стефан Гурішон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.