防止在撰写日志条目时退出GNU Emacs

时间:2018-09-02 03:13:01

标签: git svn emacs mercurial

每当我不小心用食指C-x C-c(在Mac上为Cmd-Q)时,除非打开shell或修改由文件支持的缓冲区,否则GNU Emacs会立即退出-在这种情况下,提示如何进行。

不幸的是,如果我没有打开任何shell会话并保存了我的文件,但是正处于编写一个精妙但也许并不完全精巧的git日志消息的过程中(在*vc-log*缓冲区中),但这不会阻止我一次跌倒,迅速地弯下腰来-从而丢掉那张草稿,显然我无法找到任何地方将其自动保存。

解决此问题的最佳方法是什么?我认为最好将*vc-log*以及任何其他此类缓冲区(不提供传统文件(例如提交/签入消息或电子邮件)支持的“即时”组合)备份,通过“待定草稿”文件。这样不仅可以避免意外退出Emacs,而且还可以在Emacs(或计算机本身)崩溃时恢复此类草稿。

如果这是一种合理的方法,应该如何实施?

我考虑过的其他方法(似乎不太理想):

  • 以某种方式说服相关的Emacs退出钩子总是在退出前提示,即使没有shell会话,也没有修改的,文件支持的缓冲区
  • 使用全新的Emacs会话,该会话由{例如git commit自动调用(在环境中没有-m选项且假定GIT_EDITOR=emacs的情况下),因此文件支持的{{1 }}缓冲区用于编写提交消息-防止退出新Emacs会话而不会提示 ,并避免意外退出原始Emacs会话(通常是“有很多缓冲区和其他上下文的情况”)。 / li>
  • COMMIT_EDITMSG用于单行提交消息
  • 始终保持外壳会话处于打开状态(在Emacs内),因此退出总是总是首先提示

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

M-x customize-option RET confirm-kill-emacs RET

允许您设置确认提示。