Vim:以尾随的感叹号退出 (:wq)!目的是什么?

miz*_*ech 16 vim command-line

如果留下一个编辑过的文件:q!,则它会丢弃更新。如果使用 with 离开:wq,则它会写入更新并退出 Vim。

但是:wq!(带有尾随的感叹号)的目的是什么?

我没有找到很好的解释。

gui*_*erc 23

“!” 意思是不要用警告唠叨我;去做就对了。

如果您尝试 和vim /etc/hosts,并进行更改并尝试保存:wq!- “!” 没有意义。这是一个真正的错误,不能强制使用“!” 不会工作。

一个有用的例子..

touch ~/example
chmod -w ~/example
vim ~/example
Run Code Online (Sandbox Code Playgroud)

如果您打开一个只有 READ 访问权限的文件,但事先取消了您的 WRITE 访问权限,则该警告可能会被“!”覆盖。(与 中的权限错误不同/etc/),因此出现“:wq!” 在这种情况下很方便(比跳到 shell 修复更快)。

  • 另一个常见的情况是调用 vim 作为 `view` 或 `vim -R`,即使你有权限,它也会以只读模式打开文件。这对于避免意外保存很有用,但是如果您稍后改变主意并想要保存更改,`:w!` 比退出并重新打开更容易。 (3认同)
  • @IMSoP 哦。所以“只读”不是真的“只读”? (3认同)
  • @EricDuminil 是的......这是“只读_仅当我不改变主意_”的简写:-) (2认同)

Ros*_*ser 10

:wq!意思是“写这个缓冲区然后关闭它,不问任何问题。” 如果您打开了任何其他缓冲区,它们将保持打开状态并且 vim 不会退出。