看别人用:wq,而我用:x,于是百度一下区别,整理一下:

相同点:都保存并退出的功能。

区别:

1.

:wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。

:x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

2.换另一种说法:

1)当文件内容没有被修改时,”:x“命令不会更新文件的最后修改时间;而”:wq“命令,是强制保存并退出,它会更新文件的最后修改时间为当前时间。

2)当文件内容被修改时,两个命令的功能是一样的:保存退出,并修改文件的最后修改时间为当前时间。

3.这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。

注:文件的最后修改时间可以用ls -l filename的命令查看到。用stat + 文件路径,看得更详细。


根据网上资料整理汇总。