Vim с ACK: поиск всех #pragma, не заканчивающихся ни разу

Используя ACK в Vim, я хочу найти все экземпляры #pragma это не заканчивается once в файлах, связанных с C ++. Какое регулярное выражение мне нужно использовать?

#pragma\s+.*(?<!once)$ работает в Python и JavaScript, но я не уверен, как заставить ACK принять его.

:Ack --cpp #pragma\s+.*(?<!once)$ выдает следующую ошибку в Vim:

E194: нет альтернативного имени файла, заменяющего ‘#’

Спасаясь # с \\\ ничего не возвращает. Я попробовал несколько других модификаций, но я не получаю то, что хочу.

1

Решение

Вам нужно сбежать # и ! с одной обратной косой чертой.

например

:!ack-grep --cpp '\#pragma\s+.*(?<\!once)$'

Я не уверен, если :Ack работает так же в фоновом режиме.

1

Другие решения