Question

So, I am doing this search in vim:

/\(\(unum\)\|\(player\)=\)\@<!\"1\"

and as expected it does not match lines that have:

player="1" 

but matches lines that have:

unum="1" 

what am i doing wrong? isn't the atom to be negated all of this: \(\(unum\)\|\(player\)=\)

naturally just doing: /\(\(unum\)\|\(player\)=\) matches unum= or player=.

Was it helpful?

Solution

Your pattern is

\(
    \(unum\)\|
    \(player\)=
\)\@<!"1"

which is equivalent to

\(
    \(unum\)\|
    \(player=\)
\)\@<!"1"

And it must be

\(
    \(unum\|player\)=
\)\@<!"1"

Just remove one closing and one opening parenthesis.

And, writing \" is strange: in situations where you have to escape " you also need to escape slash.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top