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 the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment