Milan Berta wrote:
Hi,
using: VIM - Vi IMproved 7.0 (2006 May 7, compiled Feb 6 2007 18:55:12)
Included patches: 1-188
when I load any keymaps after each other the b:keymap_name variable
vanish after loading the second keymap and never appears again.
So,
- open vim $vim -u NONE --noplugin
- :echo b:keymap_name #error message, the value doesn't exist, OK, true
- :setlocal keymap=esperanto #or whatever else
- :echo b:keymap_name #Eo message, OK, true
- :setlocal keymap=esperanto #or whatever else
- :echo b:keymap_name #error message, the value doesn't exist, ???, it's
like :unlet b:keymap_name.
Strange enough: the %k variable in the statusline works well all the
time -- shows the right value: either nothing, or <lang> = nothing, or
<Eo>. But it depends on the b:keymap_name value which stops to exist at
some time.
I couldn't find anything, which would point to a vanishing variable of
b:keymap_name (which is actually defined in every keymap file) in the
documentation or help:
- help keymap
- help loadkeymap
- help statusline
Regs,
Milan
Apparently, to change keymaps in a buffer where a keymap is defined, you need
to clear both the 'keymap' and 'iminsert' options:
:setlocal keymap=esperanto
:setlocal keymap= iminsert=0 keymap=accents
works (%k on the status line shows <acc> which is the b:keymap_name for the
"accents" keymap).
Note that setting 'keymap' (from empty to nonempty) also sets 'iminsert' (from
0 to 1).
Best regards,
Tony.