Странное поведение в VIM с негативным взглядом

Итак, я делаю этот поиск в VIM:

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

и, как ожидается, он не соответствует строкам, которые имеют:

player="1" 

но соответствует строкам, которые имеют:

unum="1" 

Что я делаю неправильно? Разве это не атом, отрицающий все это: \(\(unum\)\|\(player\)=\)

естественно просто занимаюсь /\(\(unum\)\|\(player\)=\) Матчи unum= или же player=,

1 ответ

Решение

Ваш образец

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

что эквивалентно

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

И это должно быть

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

Просто удалите одну закрывающую и одну открывающую скобки.

И, писать \" странно: в ситуациях, когда вам нужно сбежать " Вы также должны избежать косой черты.

Другие вопросы по тегам