Skip to content
On this page

14 种退出 Vim 的方法及区别

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