I am using a custom keymap using langmap
option in vimrc.
I am trying to use snipmate but I am running into trouble. When I type a word and hit tab it allows me to edit the parameter. The problem is that the first character is the remapped one, while I want it to be the actual key.
For instance, I'll type this:
for
and hit tab to expand the snippet:
for (i = 0; i < COUNT; ++i)
The i
is highlighted which means I can edit it. I type "aaa":
for (baa = 0; i < COUNT; ++i)
It comes out baa
even though I typed aaa
. This is because I remapped a
and b
.
How can I fix this?
Here is my keymapping:
set langmap=nj,N},ek,E{,il,IL,{^,}$,lb,LB,uw,UW,ye,YE,jg,JG,\\;z,f\\.,F\\,,zu,ZU,.?,\\,/,/v,? V,ta,TA,si,SI,ro,RO,ac,AC,wr,WR,xx,XX,dd,DD,bs,BS,gf,GF,pt,PT,kn,KN,cy,CY,vp,VP,o\\;
It won't make much sense to others, and I haven't finalized how I want it to look.
This has now been fixed in vim 7.4.1150. See https://github.com/vim/vim/issues/572 for details.
C program which outputs mappings similar behavior to langmap but not for select:
It doesn't work identically to langmap and so it might break other bindings.
From your
:set langmap
I understand that you mappeda
toc
so, by typingaaa
, did you expect to obtainccc
?From what I understand (
:help langmap
), your custom substitutions are not available in INSERT mode for actually inserting stuff and I don't see a mention of the SELECT mode you are in when overwriting SnipMate's placeholders.If I do this
and I type
aaa
in SELECT mode, I obtaincaa
.That's because
langmap
applies to the firsta
(:help Select-mode
) and, therefore insertsc
. But, after this first character I am in INSERT mode for all subsequent characters. Sincelangmap
doesn't apply in INSERT mode,aa
is inserted as is.What is not clear to me is why you obtain
baa
instead ofcaa
. Yourlangmap
seems to be pretty clear about your intention: you wanta
to insertc
andb
to inserts
. Typinga
shouldn't insertb
.I smell a risk of mistyping in your
.vimrc
. Try this: reset yourset langmap
and start adding your mappings one by one.May I ask you what is the purpose of such a massive remapping?