14 种退出 Vim 的方法及区别
INFO
Vim 是一种区分编辑模式的编辑器,如何退出 Vim 是新手最需了解的功能,也是 StackOverflow 上关于 Vim 相关话题中问得最多的问题。关于 Vim 编辑模式的内容,推荐阅读三种 Vim 操作模式。
本文总结了几种常用的退出 Vim 的方法,并对比了各种方法的不同。
普通模式下退出 Vim
普通模式是 Vim 使用过程中用得最多的模式,也是打开 Vim 后进入的默认模式。Vim 提供在插入模式下了不需进行模式切换而直接退出 Vim 的高效率方法。
ZZ:退出 Vim;如果文件被修改,则先保存文件再退出。(等价于:x命令,是程序员们最应该使用的退出命令)ZQ:强制退出 Vim,不保存任何修改。(等价于:q!命令)
命令行模式下退出 Vim
命令行模式下退出 Vim 是最常见的方式,主要场景包括直接退出 Vim 和保存文件后再退出 Vim。常用的命令包括:
退出 Vim
:q或:quit:退出当前 Vim 窗口,如果是最后一个窗口则退出 Vim。:conf q或:confirm quit:退出当前 Vim 窗口,如果当前窗口有修改,则给出提示进行选择。:q!或:quit!:强制退出当前 Vim 窗口,即使当前缓冲区发生了修改也不保存。:cq或:cquit:在任何情形下都直接退出 Vim 而不保存文件,并返回一个错误代码。:qa或:qall:退出所有 Vim 窗口,除非存在修改过的缓冲区。:conf qa或:confirm qall:退出所有打开的 Vim 窗口;如果存在修改过的缓冲区,则给出提示进行选择。:qa!或:qall!:强制退出所有打开的 Vim 窗口,不保存任何修改的内容。
保存文件并退出 Vim
:wq:保存当前文件并退出 Vim。如果文件只读或者该缓冲区无名,写回操作将失败。:wq test.txt:保存当前 Vim 缓冲区中的内容到文件 test.txt 中并退出 Vim。:[range]wq test.txt:保存当前 Vim 缓冲区中由 range 界定的内容到文件 test.txt 中并退出 Vim。:[range]x test.txt:功能和:[range]wq test.txt类似,但只有文件有修改时写入才会实际进行保存。:wqa或:wqall或:xa或:xall:保存所有修改过的缓冲区并退出 Vim。
INFO
:x和:w命令的更多区别,可以参考Vim 保存文件。- 关于 Vim 保存文件,推荐阅读 Vim 打开和保存文件的方法。