在编写日志条目时防止 GNU Emacs 退出
Prevent GNU Emacs Exiting While Composing Log Entry
每当我不小心用粗手指 C-x C-c
(或 Mac 上的 Cmd-Q
)时,GNU Emacs 会立即退出,除非 shells 是打开的或缓冲区,支持按文件修改 - 在这种情况下,它会提示如何继续。
不幸的是,如果我没有打开 shell 会话并保存了我的文件,但我正在撰写精彩但可能并不完全简洁的 git 日志消息 (在 *vc-log*
缓冲区中),这不会阻止我一口气退出,突然,猛扑 - 因此丢失了该草稿,显然没有在我能够找到的任何地方自动保存。
解决此问题的最佳方法是什么?我认为 *vc-log*
和任何其他提供 "on-the-fly" 组合但不受传统文件(例如 commit/checkin 消息或电子邮件)支持的缓冲区是最好的,但仍然要支持通过 "pending draft" 文件。这不仅有助于避免意外退出 Emacs,而且可以在 Emacs(或计算机本身)崩溃时恢复这样的草稿。
如果这是一个合理的方法,应该如何实施?
我考虑过的其他方法(似乎不太理想):
- 以某种方式说服相关的 Emacs 退出挂钩在退出前始终提示,即使没有 shell 会话也没有修改、文件支持、缓冲区
- 使用新的 Emacs 会话,由(例如)
git commit
(没有 -m
选项并假设环境中有 GIT_EDITOR=emacs
)自动调用,因此文件支持 COMMIT_EDITMSG
缓冲区用于编写提交消息——这可以防止新的 Emacs 会话在没有提示的情况下退出 和 避免意外退出原始 Emacs 会话(通常 "fatter"许多缓冲区和其他上下文)
- 对单行提交消息使用
git commit -m ...
- 始终保持 shell 会话打开(在 Emacs 中),因此退出总是先提示
有什么建议吗?
M-x customize-option
RET confirm-kill-emacs
RET
允许您设置确认提示。
每当我不小心用粗手指 C-x C-c
(或 Mac 上的 Cmd-Q
)时,GNU Emacs 会立即退出,除非 shells 是打开的或缓冲区,支持按文件修改 - 在这种情况下,它会提示如何继续。
不幸的是,如果我没有打开 shell 会话并保存了我的文件,但我正在撰写精彩但可能并不完全简洁的 git 日志消息 (在 *vc-log*
缓冲区中),这不会阻止我一口气退出,突然,猛扑 - 因此丢失了该草稿,显然没有在我能够找到的任何地方自动保存。
解决此问题的最佳方法是什么?我认为 *vc-log*
和任何其他提供 "on-the-fly" 组合但不受传统文件(例如 commit/checkin 消息或电子邮件)支持的缓冲区是最好的,但仍然要支持通过 "pending draft" 文件。这不仅有助于避免意外退出 Emacs,而且可以在 Emacs(或计算机本身)崩溃时恢复这样的草稿。
如果这是一个合理的方法,应该如何实施?
我考虑过的其他方法(似乎不太理想):
- 以某种方式说服相关的 Emacs 退出挂钩在退出前始终提示,即使没有 shell 会话也没有修改、文件支持、缓冲区
- 使用新的 Emacs 会话,由(例如)
git commit
(没有-m
选项并假设环境中有GIT_EDITOR=emacs
)自动调用,因此文件支持COMMIT_EDITMSG
缓冲区用于编写提交消息——这可以防止新的 Emacs 会话在没有提示的情况下退出 和 避免意外退出原始 Emacs 会话(通常 "fatter"许多缓冲区和其他上下文) - 对单行提交消息使用
git commit -m ...
- 始终保持 shell 会话打开(在 Emacs 中),因此退出总是先提示
有什么建议吗?
M-x customize-option
RET confirm-kill-emacs
RET
允许您设置确认提示。