Saturday, April 12, 2014

Re: How to match one OR another word?

On Sa, 12 Apr 2014, Andrei Kulakov wrote:

> Hi, how can I get this to work:

What are you trying to achieve?
>
> imap -
> <c-r>=synIDattr(synIDtrans(synID(line("."),col(".")-1,1)),"name")=~"(String)||(Comment)"
> ? '-' : '_'<cr>

I think this should be:
imap - <c-r>=synIDattr(synIDtrans(synID(line("."),col(".")-1,1)),"name")=~?'String\\|Comment'?'-':'_'<cr>

I am not sure, why the \ needs to be doubled. I guess it has to be
escaped, because it is evaluated twice or something.

> And how can this be found in Vim manual?
Depends on what your problem in understanding is. For starters, look here:

:h i_CTRL-R_=
:h synIDattr()
:h synIDtrans()
:h synID()
:h line()
:h col()
:h expr1
:h expr4
:h /bar
:h /\(

Best,
Christian
--
Der Ärger ist als Gewitter, nicht als Dauerregen gedacht; er soll die
Luft reinigen und nicht die Ernte verderben.
-- Ernst R. Hauschka

--
--
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/d/optout.

No comments: