В Vim существует ли способ поиска строк, которые соответствуют say abc
, но также не содержат xyz
позже в строке? Таким образом, следующие строки будут соответствовать:
The abc is the best
The first three letters are abc
и следующее не будет соответствовать:
The abc is the best but xyz is cheaper
The first three letters are abc and the last are xyz
Я знаю о синтаксисе, как показано ниже:
/abc\(xyz\)\@!
но это позволяет избежать соответствия abcxyz
, а не если между ними есть что-то среднее, например abc-xyz
. Использование
/abc.*\(xyz\)\@!
также не работает, поскольку в строке, где xyz
не соответствует.
(Я должен отметить, что в командной строке я сделал бы что-то вроде grep abc <infile | grep -v xyz
, но я хотел бы сделать это интерактивно в Vim.)