странное поведение в VIM с отрицательным взглядом - PullRequest
0 голосов
/ 15 апреля 2010

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

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

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

player="1" 

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

unum="1" 

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

естественно просто делает: /\(\(unum\)\|\(player\)=\) соответствует unum= или player=.

1 Ответ

5 голосов
/ 15 апреля 2010

Ваш шаблон

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...