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

Mur*_*ran 10 vim

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

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

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

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

Ott*_*tto 15

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

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

  • 谢谢,但是 :qa 怎么样? (3认同)
  • @oysteijo `:xa` 更短。 (3认同)
  • "a"表示"全部".如果加载了多个缓冲区,`q`将退出当前可见的缓冲区并跳转到下一个缓冲区.`qa`将退出所有缓冲区并退出vim. (2认同)
  • 我养成的一个好习惯是用:`:wqa` 退出 Vim。保存并退出所有缓冲区,并且键都彼此靠近。 (2认同)
  • OP问了一些非常具体的问题,你回答了你觉得要回答的任何问题。 (2认同)

Rob*_*ton 15

我没有看到任何专门解决“a”含义的答案,所以我想我会做出贡献:

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

:qa 退出,所有缓冲区,不保存,但你会得到同样的警告

:qa! 退出所有缓冲区,不保存,不发出警告

  • `w` 代表“写”。 (4认同)

小智 7

当您进行一些更改和使用时:q,它会失败并抛出一个错误说明No write since last change。为了在不保存更改的情况下退出 Vim,您应该编写:q!,它将退出 Vim 并将!用作否定,这将否定写入操作。

当您触发时:qa!,它会退出 vim 并且不会像您添加的那样抛出上面提到的错误!。并且没有像a你看到的那样的争论man vi。(请注意,参数区分大小写,并且 -a 和 -A 的处理方式不同)

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