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

Raspunde prin e-mail lui