In vim, when I hit :wq
it is almost always an accident that occurred when attempting to input :w
. I would like to disable :wq
.
The closest I found is cmap
, but it has some odd behavior. If I do something like
:cmap wq w
I can no longer even input :wq
; it just remaps the keystroke sequence wq
to w
in command mode. Now I cannot, for example, input a search/replace command on a string containing wq
.
I would just like to alias the exact command :wq
to :w
or a no-op. Is there a way to do this?
EDIT: clarified why :cmap
is not an option for me
A better solution can be:
:cabbrev wq w
But I'm not sure why cmap
doesn't work as excepted.
Actually I had mapped one my function keys to save files:
:map <F2> :w<CR>
:nmap <F2> <ESC>:w<CR>i
UPDATE: typo corrected in the first command.
UPDATE2: possible workaround:
:cabbrev wq<CR> w
HTH
It looks like the best option is to just get used to :cmap
behavior. In the rare event I want to input the keyboard seqeunce wq
I can just hit wq
, wait a second, then hit q
again. I did find this possible solution but it is too complex for my tastes.
I added a one-line patch and ran dpkg-rebuildpackage for renaming :wa
to :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',
You will need to create this patch in debian/patches/
and add it to debian/patches/series
.