Vim是一种区分编辑模式的编辑器,如何退出Vim是新手最需了解的功能,也是StackOverflow上关于Vim相关话题中问得最多的问题。关于Vim编辑模式的内容,推荐阅读三种Vim操作模式

本文总结了几种常用的退出Vim的方法,并对比了各种方法的不同。

1、普通模式下退出Vim

普通模式是Vim使用过程中用得最多的模式,也是打开Vim后进入的默认模式。Vim提供在插入模式下了不需进行模式切换而直接退出Vim的高效率方法。

  • ZZ:退出Vim;如果文件被修改,则先保存文件再退出。(等价于 :x 命令,是程序员们最应该使用的退出命令)

  • ZQ:强制退出Vim,不保存任何修改。(等价于 :q! 命令)

2、命令行模式下退出Vim

命令行模式下退出Vim是最常见的方式,主要场景包括直接退出Vim和保存文件后再退出Vim。常用的命令包括:

2.1 退出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窗口,不保存任何修改的内容。

2.2 保存文件并退出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。

vim-write-file

:x:w 命令的更多区别,可以参考Vim保存文件

关于Vim保存文件,推荐阅读Vim打开和保存文件的方法

嗯,扫一扫就可以找到小女子我啦~