Dettorer wrote:
> On Thursday, September 20, 2012 1:56:46 AM UTC, Alex Ogier wrote:
> > Currently, langmap applies in some limited fashion to the right side of
> > mappings. For example, the following from normal mode will delete until the
> > end of a line:
> >
> > :set langmap=xd
> > :nnoremap z x
> > z$
> >
> > Strangely this doesn't apply to all cases transparently, for example, the
> > following might be expected to delete a single line, but in fact it just
> > blinks the cursor:
> >
> > :set langmap=xd
> > :nnoremap z x
> > zz
> >
> > This is all a bit wacky, since it follows that if someone has a binding
> > (especially a noremap binding) they want the right side to execute as if in
> > a pristine environment. For example, if someone has made a mapping,
> > ":nnoremap <leader>d yyp" they presumably want a binding to duplicate a
> > line -- not, say undo twice and delete a character because they have
> > "yu,px" in their langmap.
> >
>
> I agree, I'm using bépo (a dvorak inspired french keymap) and this is
> exactly the behaviour I imagine for langmap.
>
> > This is all a bit weird but manageable if you are in control of all your
> > mappings. What it really breaks is plugins. For example, a common pattern
> > is to have two levels of mappings: one containing a bunch of mappings
> > prefixed with <Plug> that are always installed, and another set that is
> > conditionally installed with some convenient defaults, often short patterns
> > containing <leader>. For example, excerpted from tpope's vim-surround
> > plugin[1]:
> >
> > nnoremap <silent> <Plug>Dsurround :<C-U>call
> > <SID>dosurround(<SID>inputtarget())<CR>
> > nmap ds <Plug>Dsurround
> >
> > This is totally non-functional if any of the characters in "Dsurround" is
> > included in langmap, as they will get translated on the right side of the
> > 'ds' mapping. It's especially weird when people have insert mappings. For
> > example, ervandew's SuperTab[2] ships with the following mappings:
> >
> > imap <script> <Plug>SuperTabForward <c-r>=<SID>SuperTab('n')<cr>
> > exec 'imap ' . g:SuperTabMappingForward . ' <Plug>SuperTabForward'
> >
> > If you have a langmap affecting any of the characters in 'SuperTabForward'
> > then hitting tab in insert mode fails noisily with the bizarre behavior of
> > inserting the string "<Plug>SuperTabForward" into the document at the
> > current position.
>
> I'm experiencing the same issue here (archlinux and debian), so I use
> a long list of noremap[1] instead, which is not really what I'm
> looking for.
We could add an option 'nolangremap' or use a special character in
'langmap' to disable remapping.
I'm not sure changing the current behavior of 'langmap' won't break
someone's scripts or mappings. And the feature has existed for a very
long time.
--
hundred-and-one symptoms of being an internet addict:
9. All your daydreaming is preoccupied with getting a faster connection to the
net: 28.8...ISDN...cable modem...T1...T3.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php