:w 和 :w 的区别!在 vi 编辑器中

Difference between :w and :w! in vi editor

如果我使用 :w! 而不是 :w 有什么区别?

如果文件已经存在,您将覆盖它。

w!覆盖文件并强制写入。如果您试图覆盖同名文件,w 会提示您。

:w 将当前更改从缓冲区写入文件 但如果设置了只读标志,那么在这种情况下将拒绝写入

使用:w!

您可以在此处参考 vim 文档 http://vimdoc.sourceforge.net/htmldoc/editing.html#writing

一般是“!”在 vi 中使用覆盖,即如果您修改了一个只读文件,然后在使用 :w 保存它时您将收到消息 "E52 readonly opton is set use ! to override"。您可以使用 :w! 覆盖警告,您的更改将反映在文件中(注意:如果您是文件的所有者,则只会反映更改,您可以使用chown 更改所有者)。 如果您想关闭而不保存更改,您可以使用 :q!。 其他一些用途就像如果您想将任何 'cmd' 作为 shell 命令执行,那么您可以 使用 :! 'cmd' 例如::! ls 将列出当前目录中的文件和文件夹。 类似地,如果您想保存并退出只读文件,请使用 :wq!

你可以说 :w 就像一个请求。 :哇!就像一个命令。

:w 代表保存文件 ---> 仅适用于文件具有 rwx 权限。 :w!代表强制保存文件。 ---> 当文件有权限 r-x 权限时有用