Am 11.05.2017 um 18:52 schrieb Efraim Yawitz:
Hi,
The docs for the matchit plugin say that the mappings in it may cause
strange behavior, but I think this example is worth noting.
I was trying to do yV% on lines like this:
#ifdef SOMETHING ... #endif //SOMETHING
expecting to yank all the lines, but what I got was everything up to
the comment, i.e., the last line had only the #endif. A new
uninstalled vim (without plugins) did what I had expected
originally.
After some debugging, what I found was that in this mapping in
matchit.vim:
onoremap <silent> % v:<C-U>call <SID>Match_wrapper('',1,'o') <CR>
the 'v' in v:<C-U> was changing the operator to forced characterwise
after my 'V' had tried to force it to forced linewise. Doing ounmap
% got the behavior I was looking for.
I couldn't find yet in the help what v:<C-U> is supposed to do, but
what is significant is that the 'v' in that mapping is evidently
being interpreted twice, once as a "force characterwise" signal, and
again for what it 'really' means. I imagine this could cause
problems in other plugins as well which use this construction.
See :h o_v
An Ex-command used in Omap-mode :<C-U>...<CR> is an exclusive motion.
With v:<C-U>...<CR> it becomes inclusive.
It think it's a bug in Vim that
Vv:<C-U>...<CR>
is kind of undefined yet (at least this was case quite some time ago ...).
--
Andy
--
--
You received this message from the "vim_use" 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
---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to vim_use+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.