困在 Vim 里退不出来?本文为你提供最全的 Vim 保存退出指南。从基础的 :wq 到强制退出 :q!,再到快捷键 ZZ,3分钟助你掌握 Linux Vim 编辑器的核心操作,彻底告别 Vim 恐惧症。
在编程界有一个著名的笑话:“如何生成随机字符串?让一个新手退出 Vim 即可。” 虽然 Vim 是一款功能极其强大的编辑器,但它的操作逻辑与我们习惯的记事本或 Word 完全不同。
本文将为你详细讲解 Vim 如何保存并退出,并介绍几种不同场景下的退出命令,助你彻底摆脱“Vim 恐惧症”。
核心概念:在输入命令前,请先按 ESC
在学习任何退出命令之前,必须先理解 Vim 的一个核心概念:模式(Modes)。
Vim 默认处于 普通模式(Normal Mode)。在这个模式下,你按下的键盘按键被视为“命令”,而不是输入字符。如果你正在打字(处于插入模式),你必须先切换回普通模式才能执行保存或退出命令。
操作金律: 无论你当前在做什么,如果不确定,请多按几次 Esc 键,确保你回到了普通模式。
场景一:保存修改并退出 (Save and Quit)
这是最常用的场景。你已经完成了文件的编辑,想要保存更改并关闭 Vim。
方法 1:标准命令 :wq
这是最经典、最广为人知的命令组合。
- 按
Esc键进入普通模式。 - 输入
:wq。 - 按
Enter(回车键)。
命令解析:
:进入命令行模式。w代表 Write(写入/保存)。q代表 Quit(退出)。
方法 2:快捷命令 :x
这个命令比 :wq 更智能一些。
- 按
Esc键。 - 输入
:x。 - 按
Enter。
:x 和 :wq 的区别: :wq 无论文件是否修改都会强制写入文件(更新修改时间);而 :x 只有在文件内容确实发生变化时才会执行写入操作。对于 SEO 或文件审计来说,保持准确的时间戳有时很重要,因此推荐习惯使用 :x。
方法 3:快捷键 ZZ
如果你想以此展现“极客”风范,可以使用大写快捷键,无需输入冒号。
- 按
Esc键。 - 按住 Shift 并连按两次 Z(即输入
ZZ)。 此操作等同于:x。
场景二:不保存并强制退出 (Quit Without Saving)
如果你把文件改乱了,或者只是想看一眼文件内容而不小心进入了编辑模式,你需要“放弃修改并退出”。
方法 1:强制退出 :q!
- 按
Esc键。 - 输入
:q!。 - 按
Enter。
命令解析:
q代表 Quit。!在 Linux 中通常代表“强制”(Force)。这里的意思是:“别管我改了什么,立刻退出!”
方法 2:快捷键 ZQ
对应上面的 ZZ,这也是一个无需冒号的快捷方式。
- 按
Esc键。 - 输入
ZQ。 此操作等同于:q!,即不保存直接退出。
场景三:只保存不退出
如果你正在写长代码或文章,想顺手存个盘防止断电,但还不想关闭编辑器。
- 命令:
:w - 操作:按
Esc,输入:w,按回车。
进阶:常见问题排查 (Troubleshooting)
在使用 Vim 保存退出时,新手常常遇到以下报错,这里提供解决方案。
1. 错误提示:E37: No write since last change
原因:你修改了文件,但试图只用 :q 退出。Vim 在保护你的数据。 解决:
- 如果要保存,请输入
:wq。 - 如果不保存,请输入
:q!。
2. 错误提示:E45: 'readonly' option is set (只读文件错误)
原因:你打开了一个没有写入权限的文件(例如系统配置文件),但修改了它。此时用 :wq 会失败。 解决: 如果你有 sudo 权限,可以使用以下“魔法命令”强制保存(无需退出重开):
:w !sudo tee %
w:写入。!sudo:以管理员权限运行外部命令。tee:Linux 命令,用于将数据重定向到文件。%:Vim 中代表当前文件名的符号。- 输入后按回车,Vim 会提示文件已在外部被修改,按
L加载更改即可。
总结:Vim 退出命令速查表
为了方便记忆,你可以将以下列表截图保存:
- 常规保存退出:
:wq或:x - 极速保存退出:
ZZ(大写) - 放弃修改退出:
:q! - 极速强制退出:
ZQ(大写) - 仅保存:
:w
Vim 的学习曲线虽然陡峭,但只要掌握了这几个最基础的保存退出命令,你就已经跨过了最难的一道门槛。希望这篇指南能帮助你更自信地使用终端编辑器!




