在 vim 中,当我点击:wq
它时,几乎总是在尝试输入时发生意外:w
。我想禁用:wq
.
我找到的最接近的是cmap
,但它有一些奇怪的行为。如果我做类似的事情
:cmap wq w
我什至无法输入:wq
;它只是将击键序列重新映射wq
到w
命令模式。例如,现在我不能在包含wq
.
我只想将确切的命令别名:wq
为:w
或无操作。有没有办法做到这一点?
编辑:澄清为什么:cmap
不是我的选择
更好的解决方案可以是:
:cabbrev wq w
但我不确定为什么cmap
不能作为例外工作。实际上我已经映射了一个我的功能键来保存文件:
:map <F2> :w<CR>
:nmap <F2> <ESC>:w<CR>i
更新:在第一个命令中更正了错字。
UPDATE2:可能的解决方法:
:cabbrev wq<CR> w
高温高压
看起来最好的选择就是习惯:cmap
行为。在极少数情况下,我想输入键盘序列,wq
我可以按一下wq
,等一下,然后再按q
一次。我确实找到了这个可能的解决方案,但它对我的口味来说太复杂了。
我添加了一个单行补丁并运行 dpkg-rebuildpackage 以重命名: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
.