经常发生修改文件缓冲区(呃!)。退出之前,emacs会询问是否保存更改。现在知道实际改变了什么会很有趣。有没有办法找出来?
答案 0 :(得分:29)
从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.
答案 1 :(得分:17)
我使用diff-buffer-with-file,并选择缓冲区来自的文件(这是命令的默认值...只需按Enter键。)
您也可以使用突出显示更改模式,但在开启之前不会跟踪更改,因此如果您想要查看关闭未包含此内容的文件时发生的更改,请不要太有用模式: - )
答案 2 :(得分:8)
您可以启用highlight-changes-mode
。它将以红色显示所有变化。但是,它不会显示空格更改,并且仅使用红色_
标记删除。另请参阅http://www.emacswiki.org/emacs/TrackChanges。
答案 3 :(得分:2)
我发现djcb post about tracking changes对于跟踪Emacs中的更改最有帮助。诀窍是将以下内容添加到.emacs:
;; higlight changes in documents
(global-highlight-changes-mode t)
(setq highlight-changes-visibility-initial-state nil); initially hide
然后在想要查看更改内容时切换高亮显示更改可见模式。
答案 4 :(得分:1)
在这种情况下,我输入undo来查看最后一次更改(通常是在错误的窗口中输入的一些流浪角色,因为我经常提前保存)。
如果对当前的变化有其他指示,例如,那将是很好的。在边界中像Eclipse文本编辑器中的快速差异一样。
答案 5 :(得分:0)
我使用goto-chg这样的事情。它并不完美,但总是足以让我记忆我所做的改变并立即忘记了。