Выделите изменения буфера - PullRequest
30 голосов
/ 09 марта 2009

Часто случается, что файловый буфер изменяется (дух!). Перед выходом emacs спрашивает, сохранять ли изменения. Теперь было бы интересно узнать, что на самом деле изменилось. Есть ли способ узнать?

Ответы [ 6 ]

29 голосов
/ 09 марта 2009

Начиная с Emacs 22.1 (как минимум), 'save-buffers-kill-emacs (связывание по умолчанию для C-x C-c ) запрашивает у вас каждый несохраненный буфер, в котором есть файл. Введите d при появлении запроса на сохранение и просмотр различий.

Из справочной документации:

Save some modified file-visiting buffers.  Asks user about each one.
You can answer `y' to save, `n' not to save, `C-r' to look at the
buffer in question with `view-buffer' before deciding or `d' to
view the differences using `diff-buffer-with-file'.

Если вы посмотрите на приглашение, оно должно выглядеть примерно так:

Save file /path/to/file.txt? (y, n, !, ., q, C-r, d, or C-h) 

Набрав C-h , вы получите немного более подробное описание (но вы запрашиваете d ):

Type SPC or `y' to save the current buffer;
DEL or `n' to skip the current buffer;
RET or `q' to give up on the save (skip all remaining buffers);
C-g to quit (cancel the whole command);
! to save all remaining buffers;
C-r to view this buffer;
d to view changes in this buffer;
or . (period) to save the current buffer and exit.
17 голосов
/ 09 марта 2009

Я использую diff-buffer-with-file и выбираю файл, из которого получен буфер (который в любом случае используется по умолчанию для команды ... просто нажмите Enter).

Вы также можете использовать режим подсветки изменений, хотя он не будет отслеживать изменения, пока вы его не включите, поэтому он не очень полезен, если вы хотите увидеть, что изменилось при закрытии файла, который не был в этом режим: -)

8 голосов
/ 09 марта 2009

Вы можете включить highlight-changes-mode. Все изменения будут отображаться красным цветом. Однако он не будет отображать изменения пробелов и помечает удаления только красным _. Смотри также http://www.emacswiki.org/emacs/TrackChanges.

2 голосов
/ 31 июля 2009

Я нашел этот пост о отслеживании изменений от djcb наиболее полезным для отслеживания изменений в Emacs. Хитрость заключается в том, чтобы добавить в ваш .emacs следующее:

;; higlight changes in documents
(global-highlight-changes-mode t)
(setq highlight-changes-visibility-initial-state nil); initially hide

и затем переключите режим highlight-changes-visible-mode, когда вы хотите увидеть, что изменилось.

1 голос
/ 09 марта 2009

В этом случае я печатаю отмену, чтобы увидеть последнее изменение (обычно это какой-то случайный символ, набранный в неправильном окне, поскольку я сохраняю данные рано и часто).

Было бы хорошо, если бы были какие-то другие признаки текущих изменений, например в рамке, как быстрая разница в текстовых редакторах Eclipse.

0 голосов
/ 09 марта 2009

Я использую goto-chg для подобных вещей. Это не идеально, но этого всегда достаточно, чтобы потрясти мою память о том, что я сделал и быстро забыл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...