基本上我想知道::w
和:w!
或:wq
和:wq!
答案 0 :(得分:39)
!限定符告诉Vim强制操作。例如,如果文件是只读的,您将使用:w!无论如何写它。如果文件已被修改并且您想要在不保存的情况下退出,则可以使用:q!。 :WQ!只是意味着在一个命令中强制写入和退出。
答案 1 :(得分:28)
感叹号通常意味着强行采取行动。
另一种使用感叹号:!
后跟一些命令直接从编辑器执行此命令。
:! ls /etc
答案 2 :(得分:26)
除了感叹号强制事物(如写入)之外,它还会将命令转换为切换命令。所以,如果我这样做:
:set cursorline
我的光标所在的行将突出显示。我可以通过以下方式将其关闭:
:set nocursorline
或者我能做到:
:set cursorline!
该命令在两个设置之间翻转,关闭和打开。
我经常关闭和打开光标线高亮显示,并且toggle命令允许我使用简单的功能键映射。没有切换,我需要两个映射:一个打开它,另一个打开它。或者我必须编写一个函数来确定光标线设置是打开还是关闭,然后打开相反的设置。
据我所知,这适用于所有具有开启和关闭设置的命令行设置,如hlsearch,paste,cursorcolumn,number,insearch等。
另请注意,感叹号将切换命令的 no 版本。例如,您还可以使用以下方法切换光标线设置:
:set nocursorline!
答案 3 :(得分:9)
这实际上取决于所考虑的命令。关于你所列举的那些,它强制执行命令,因为其他人已经回答了你。
但是,还有其他命令,例如:global
,:map
,:make
,:silent
,...,其中爆炸(!
)还有其他效果。阅读他们的文档:
:help help
(我们可以在我们定义的命令中给出我们想要的任何意义)