Hi Christian, thanks for your prompt reply! It's still not clear to me whether yanking a non-existent text object always raises an error or not. cpoptions E seems to apply to y<motion> but it's not clearly stated (at least, I can't find that statement) what happens with y<object>.
There is an easy workaround that I mentioned before: :norm yi<<CR>:norm yi(<CR>. It's somewhat hackish but it's concise. It should be noticed that :norm yi<yi( also fails. This last observation reinforces the "y<object> always raises an error for non-matched objects" theory. Best regards -- Carlos On Tue, Jan 28, 2014 at 5:06 PM, Christian Brabandt <[email protected]> wrote: > Hi Carlos! > > On Di, 28 Jan 2014, Carlos Pita wrote: > >> I would like to yank the inner contents of <...> or (...) expressions >> in a mapping. In normal mode I can try with the two-yank sequence >> yi<yi(. One of the yanks will be empty and the other will match the >> desired contents. The net effect is to match the contents no matter >> they were inside () or <>. Now if I put that in a map it seems to >> abort when the first yank fails, so it only matches the contents for >> <...> expressions (because yi< is the first probed yank). If I put >> :normal yi<<CR>:normal yi( instead, the mapping works the same than >> when I manually type it in normal mode. The E flag is not included in >> my cpoptions. >> >> Could someone clarify this behavior, please? > > That is explained (although only briefly) at :h map-error > > I am not sure, there is an easy way to achieve what you want. I think, > something like this could work: > > fu! MapAngle() > if searchpairpos('<', '', '>', 'bn') ==# [0,0] > return "i(" > else > return "i<" > endif > endfu > > omap <expr> i_ MapAngle() > > > Best, > Christian > -- > "But Huey, you PROMISED!" > "Tell 'em I lied." > > -- > -- > 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 a topic in the Google > Groups "vim_use" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/vim_use/nBBm61o00pI/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
