I have the following bindings in my ~/.vimrc
to make it easier to "disengage" some of my insert-mode key-bindings.
Here's an example. `
for <Nop>
and ``
to enter a literal `
.
inoremap ` <Nop>
inoremap `` `
For the most part this works pretty well. However, when inserting `
normally and then allowing the possible-completion to time out I can't enter ``
for a literal `
anymore. Nothing happens. I can insert other characters like a
just fine though. (I tested this with only the above file as my .vimrc
)
However, if instead of <Nop>
I use a different do-nothing command combination like <esc>a
, then I don't see this behavior at all.
inoremap ` <esc>a
inoremap `` `
With this configuration, I can type a `
, wait for it to time out, and then type ``
... and the result will be a `
.
Why does the first example have this odd behavior?
<esc>a
is not a do-nothing command; for example it kills autoindent. A workaround may beinoremap ` <c-g><c-g>