下面我将从最简单、最常用的方法开始,逐步介绍各种场景下的退出命令。

(图片来源网络,侵删)
最常用和最推荐的退出方式
这是最安全、最符合 Emacs 工作流的方式,因为它会提示你是否保存修改过的文件。
C-x C-c
这是退出 Emacs 的核心快捷键组合。
- 操作:同时按下
Ctrl键和x键,然后同时按下Ctrl键和c键。 - 效果:
- 如果当前有未保存的修改,Emacs 会弹出一个 minibuffer(屏幕底部的细长区域),提示你:
Save file ~/my-test.txt? (y, n, !, ., q, C-r or C-h)
- 你可以根据需要选择:
y(yes): 保存文件并退出 Emacs。n(no): 不保存文件,直接退出 Emacs(所有修改将丢失)。- (bang): 强制不保存任何文件,直接退出所有缓冲区。
- (period): 保存当前文件,但不退出,继续询问其他未保存的文件。
q(quit): 取消退出命令,返回编辑状态。C-r(Ctrl-r): 查看文件的差异,看看具体修改了什么,然后再决定。C-h(Ctrl-h): 查看所有选项的帮助。
- 如果当前有未保存的修改,Emacs 会弹出一个 minibuffer(屏幕底部的细长区域),提示你:
不保存文件直接退出
如果你确定不想要任何修改,想直接退出,可以使用以下方法:
M-x kill-emacs
- 操作:按下
Alt键(或Esc键),然后依次按下x键,接着输入kill-emacs并按回车。 - 效果:它会直接退出 Emacs,不会提示你保存任何文件,所有未保存的更改都会丢失。
注意:
kill-emacs是一个更底层的命令,C-x C-c在大多数情况下会调用它。(图片来源网络,侵删)
处理多个文件/缓冲区的情况
当你打开多个文件时,C-x C-c 的行为会更智能。
- 逐个处理:当你按下
C-x C-c,它会先提示你保存当前缓冲区的文件,如果你选择保存(y),它会跳到下一个有修改的文件并再次提示,这个过程会一直持续,直到所有文件都处理完毕,然后才退出。 - 放弃所有修改:如果在任何一个提示中选择 ,它会立即放弃所有未保存的修改并退出。
只退出当前文件/缓冲区,但不退出 Emacs
有时候你只想关闭当前正在编辑的文件,而不是整个 Emacs 程序,这被称为“杀死缓冲区”(Kill Buffer)。
C-x k
- 操作:同时按下
Ctrl键和x键,然后按下k键。 - 效果:
- 屏幕底部会提示:
Kill buffer: (default my-test.txt) - 按下回车键,就会关闭当前文件所在的缓冲区。
- 如果这个文件有未保存的修改,Emacs 同样会询问你是否保存。
- 屏幕底部会提示:
场景:这个命令非常适合在同时编辑多个文件时,关闭已经处理完的文件,保持工作区整洁。
特殊情况处理
卡住了或命令未响应
Emacs 好像卡住了,或者某个命令无法响应,你可以尝试:

(图片来源网络,侵删)
C-g: 这是 Emacs 的“取消”或“中断”命令,按下它可以停止当前正在执行的长时间运行的命令或宏,并让你重新获得控制权,在退出时,如果卡在某个地方,先试试C-g。
“杀死”一个子进程
如果你在 Emacs 中启动了一个外部程序(shell、编译器等),并且想关闭它,而不是整个 Emacs:
C-x k: 同样使用C-x k。- 操作:按下
C-x k后,在提示输入要杀死的缓冲区名称时,输入那个子进程的缓冲区名称(通常是*shell*或*compilation*之类的),然后回车。
总结表格
| 命令/快捷键 | 名称/功能 | 描述 |
|---|---|---|
C-x C-c |
save-buffers-kill-terminal |
最常用,退出 Emacs,会提示保存所有修改过的文件。 |
M-x kill-emacs |
kill-emacs |
强制退出,直接退出 Emacs,不保存任何文件,所有修改丢失。 |
C-x k |
kill-buffer |
退出当前文件,关闭当前文件所在的缓冲区,但不退出 Emacs。 |
C-g |
keyboard-quit |
取消/中断,用于停止卡住的命令或宏,与退出相关但不是退出命令。 |
新手建议
对于刚开始使用 Emacs 的用户,请牢牢记住 C-x C-c,这是最安全、最标准的退出方式,它会通过交互式提示引导你完成保存或放弃的决策,有效防止你意外丢失工作内容。
当你熟悉了 Emacs 之后,你会发现 C-x k 在管理多个打开的文件时非常有用,而 M-x kill-emacs 通常只在脚本自动化或紧急情况下才会用到。

