:W 撤消我在 Neovim 中的所有更改。我该如何关闭它?

:W undoes all my changes in Neovim. How do I turn this off?

我检查了 Neovim 中的映射,但找不到任何到 :W 的映射会导致 'undo all'。当我不小心输入 :W 而不是 :w.

时真令人沮丧

我在哪里可以找到这个绑定以及如何切换它?

这不是映射,是命令。 运行 :verbose command W 检查它的作用和定义的位置。它不是 vim 或 neovim 中的默认地图,因此它可能是一个插件(或者可能是您的 Vim 配置文件)。另外值得注意的是,您可以单击选项卡以显示所有可用选项,然后 :h :WhateverCommandNameYouFoundHere 找出它的用途,假设它与也记录它的插件相关。

Vim 具有部分自动解析功能,因此如果只有一个以 W 开头的命令(例如 WholeFile 只是为了举个例子),您可以 :W 引用它命令。但是,如果还有 :Where,您至少需要 :Who 才能自动解析。 Vim 会抱怨模棱两可的用户定义命令,所以很可能某处有自定义命令。

另请参阅:|:verbose|,具体来说就是:

When 'verbose' is non-zero, listing the value of a Vim option or a key map or
an abbreviation or a user-defined function or a command or a highlight group
or an autocommand will also display where it was last defined.  If it was
defined manually then there will be no "Last set" message.  When it was
defined while executing a function, user command or autocommand, the script in
which it was defined is reported.

这通常意味着您可以找到命令、键绑定、Vim 选项、函数、高亮组或在 Vim 启动时源文件中定义的自动命令。如果您正在尝试跟踪此类内容,这将非常有用。


更重要的是,如您所知,:verbose command W 还将告诉您命令的定义。具体到你的情况,它完全在你的控制之下,这意味着如果你不希望它发生冲突,你可以删除它或重命名它。

一般来说,如果它是插件的一部分(并且您使用插件管理器),请查看插件文档以查看是否可以禁用或重命名它。如果你不能,你总是可以 |delcommand| - 可能需要一个 autocmd 在 运行 之前等待,因为插件是在配置文件之后获取的,但它仍然是一个选项。