Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何禁用vim中的内置命令_Vim_Command_Built In_Remap - Fatal编程技术网

如何禁用vim中的内置命令

如何禁用vim中的内置命令,vim,command,built-in,remap,Vim,Command,Built In,Remap,在vim中,当我点击:wq时,几乎总是在尝试输入:w时发生意外。我想禁用:wq 我发现最接近的是cmap,但它有一些奇怪的行为。如果我做了类似的事情 :cmap wq w 我甚至不能输入:wq;它只是在命令模式下将击键序列wq重新映射到w。例如,现在我无法在包含wq的字符串上输入搜索/替换命令 我只想将确切的命令:wq别名为:w或no-op。有没有办法做到这一点 编辑:澄清为什么:cmap不是我的选择更好的解决方案可以是: :cabbrev wq w 但我不确定为什么cmap不能作为例外工作

在vim中,当我点击
:wq
时,几乎总是在尝试输入
:w
时发生意外。我想禁用
:wq

我发现最接近的是
cmap
,但它有一些奇怪的行为。如果我做了类似的事情

:cmap wq w
我甚至不能输入
:wq
;它只是在命令模式下将击键序列
wq
重新映射到
w
。例如,现在我无法在包含
wq
的字符串上输入搜索/替换命令

我只想将确切的命令
:wq
别名为
:w
或no-op。有没有办法做到这一点


编辑:澄清为什么
:cmap
不是我的选择

更好的解决方案可以是:

:cabbrev wq w
但我不确定为什么
cmap
不能作为例外工作。 实际上,我已经映射了一个功能键来保存文件:

:map <F2> :w<CR>
:nmap <F2> <ESC>:w<CR>i
:地图:w
:nmap:wi
更新:在第一个命令中更正了输入错误

更新2:可能的解决方法:

:cabbrev wq<CR> w
:cabbrev wq w

HTH

看起来最好的选择就是习惯于
:cmap
行为。在极少数情况下,我想输入键盘序列
wq
,我只需点击
wq
,等待一秒钟,然后再次点击
q
。我确实找到了,但对我的口味来说太复杂了。

我添加了一个单行补丁并运行了dpkg重建包,以便将
:wa
重命名为
:wwa

--- neovim/src/nvim/ex_cmds.lua
+++ neovim/src/nvim/ex_cmds.lua
@@ -3057,7 +3057,7 @@
     func='ex_wnext',
   },
   {
-    command='wall',
+    command='wwall',
     flags=bit.bor(BANG, TRLBAR, CMDWIN),
     addr_type=ADDR_LINES,
     func='do_wqall',

您需要在
debian/patches/
中创建此修补程序,并将其添加到
debian/patches/series

能否请您解释一下:cabbrew?我想应该是
:cabbrev
<代码>:cabbrev wq w将在按空格键或enter键后将wq更改为w,因此它将使
:wq
执行
:w
。有关更多信息,请参见
:help:cabbrev
:help:ab
。对不起,我想我的问题不够清楚。如果您使用:cmap,并且看起来也是:cabbrew,则表示命令模式下的“wq”击键序列映射到了“wq”以外的内容。因此,例如,您不能对包含“wq”的字符串执行搜索/替换。我想做的就是,如果我输入准确的命令:wq,它被别名为“w”或no-op。谢谢AI,拼写更正。我正在深入研究这个问题。因为这不是正确的解决方案。只是顺便说声谢谢-我正试图摆脱标签,所以做
cabbrev-tabnew-help使vim在每次尝试创建选项卡时都给出错误消息。