如何退出 Vim?
说实话——你大概是因为退不出 Vim 才来到这里的吧。别担心,你不是一个人。“如何退出 Vim"是 Stack Overflow 上浏览量最高的问题之一,已经被看了超过 200 万次。好消息是:只要理解了 Vim 的工作方式,退出其实非常简单。下面先列出命令,然后我们再解释 为什么 Vim 要这样设计。
快速退出命令
先按 Esc 确保你处于
NORMAL
模式,然后输入:
| 命令 | 作用 |
|---|---|
:q |
退出(如果有未保存的更改会失败) |
:q! |
不保存直接退出 |
:wq |
保存并退出 |
:x |
保存并退出(仅在有更改时才写入) |
ZZ |
保存并退出——不需要冒号 |
ZQ |
不保存直接退出——不需要冒号 |
“我卡住了”——常见错误
“E37: No write since last change”
你有未保存的更改。使用 :wq 保存并退出,或使用 :q! 放弃更改。
“E212: Can’t open file for writing”
你没有写入权限。用 sudo 保存::w !sudo tee %,然后用 :q! 退出。
输入 :q 后没有反应
你可能处于
INSERT
或
VISUAL
模式。先按 Esc,再输入命令。
Vim 模式详解
Vim 有多种模式——这就是为什么退出不像关闭窗口那么直接。你需要先切换到正确的模式。
-
NORMAL
mode(默认)——用于导航和执行命令。按
Esc回到此模式。 -
INSERT
mode——用于输入文本。通过
i、a或o进入。 -
VISUAL
mode——用于选择文本。通过
v、V或Ctrl+v进入。 -
COMMAND
mode——用于输入
:q等命令。在 NORMAL 模式下按:进入。
所有退出命令都在
NORMAL
模式或
COMMAND
模式下使用。如果你在其他模式中,请先按 Esc。
想深入了解?
- Vim 基础——理解模式、缓冲区、分屏,以及 Vim 的设计思路
- Vim 快捷键——你一定想收藏的速查表
- 为什么选择 Vim?——为什么数百万开发者对这款编辑器爱不释手