有什么区别:q和:qa!在Vim?

时间:2017-08-04 13:35:43

标签: vim

我对Vim很新,所以我先检查了help.txt文件,告诉自己有关Vim的信息。在这里,我看到了以下内容:

  

关闭此窗口:使用“:q”。
     走出Vim:用“:qa!” (小心,所有的变化都会丢失!)。

第一个关闭Vim。第二个也。不是所有的变化都与:q?要清楚,我使用vim GUI而不是命令提示符。

编辑:更多的是差异,而不是实际意义。 help.txt文件中几乎相同的解释使我感到困惑。

3 个答案:

答案 0 :(得分:13)

关键区别在于感叹号。 :q会警告您未保存的更改,并且不会让您退出。 :q!不会警告你。

另请参阅:help quit(在vim中键入)

答案 1 :(得分:7)

我看不到任何专门针对“ a”含义的答案,因此我认为自己会做出贡献:

:q已退出,但警告您没有保存

:qa已退出,所有缓冲区都没有保存,但您会收到同样的警告

:qa!退出所有缓冲区,没有保存,也没有警告

答案 2 :(得分:4)

你发射命令的顺序非常重要。

当您使用:q时,它将不允许并将抛出一个错误,指出No write since last change。为了退出Vim并保存更改,你应该写:q!,它将退出Vim,!将作为否定,这将取消写操作。

当您解雇:qa!时,它会首先退出vim,并且不会因为您添加!而引发上述错误。如果你看到a,就没有man vi这样的论点。 (请注意,参数区分大小写,-a和-A两者的处理方式不同)

为了保存文件然后退出vim,你应该使用:wq,因为它会先保存文件然后退出Vim。