众所周知,Vi和Vim有许多同义词。我知道有三种保存文件并退出Vim和Vi的方法。它们是:wq 、: x 和ZZ。我听说它们在某些方面有所不同。

使用之间是否有任何实际区别:

:x

:wq



ZZ

保存文件并退出Vim和Vi?

评论

简单的答案:它们是相同的。

它们不一样。我不确切知道两者之间的区别,但这是关于写与不写文件(如果未进行更改)(即更新时间戳)的比较。

另外,从实际的角度来看,ZZ(或ZQ)更短并且更容易输入...

:help:wq,:help ZZ,:help:x。就在文档中。

#1 楼

根据Vim的文档,:xZZ是等效的。他们只保存修改后的文件,然后退出Vim:

Write current file, if modified, and quit (same as ":x").  
(Note: If there are several windows for the
current file, the file is written if it was modified and the window is closed).


:wq另一方面写入文件并退出Vim(假定适当的权限)。

#2 楼

正如akshay所指出的那样,Vim的文档解释说,:xZZ是等效的,并且仅在更改了关联的缓冲区后才保存文件。
:wq会将缓冲区保存到相应的文件中,即使它没有更改。显然结果是一样的,那为什么要麻烦,对吗?但是,请稍等...之间存在细微但不相关的差异。文件。另一方面,如果您通过:x退出,则修改时间将改变,因为该文件在技术上已被重写(再次保存)。例如,依赖于修改时间的备份过程可以存储该文件(并可能通过网络发送该文件),即使未包括其他信息也是如此。否则某些监视过程可能会在检测到文件已更改的情况下发出警报。修改时间,一个:wq(不带:q)也将起作用。

评论


另外,某些自动命令仅在写入文件时运行。如果文件没有更改并且Vim用ZZ或:x退出,它们将不会运行。

–蜘蛛
18年8月18日在20:46

要提及的另一件事是,如果您在vim中打开了未修改的缓冲区,并且已从系统中删除了该文件,则ZZ将不会创建该文件并将其写入。

– Dawit Abate
19/12/30在8:57

应该接受答案

–周江
20年6月18日在1:30

对于它的价值,ZZ会保存一些键入(vimgolf),因为您不必键入

– Sbu
20/09/10在20:46