Vim with ACK: 搜索所有#pragma not ending in once

Vim with ACK: Search for all #pragma not ending in once

在 Vim 中使用 ACK,我想在 C++ 相关文件中找到不以 once 结尾的 #pragma 的所有实例。我需要使用什么正则表达式?

#pragma\s+.*(?<!once)$ 在 Python 和 JavaScript 中有效,但我不确定如何让 ACK 接受它。

:Ack --cpp #pragma\s+.*(?<!once)$ 在 Vim 中产生以下错误:

E194: No alternate file name to substitute for '#'

\\ returns 什么都没有转义 #。我已经尝试了一些其他的修改,但我没有得到我想要的。

您需要使用单个反斜杠转义 #!

例如

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

我不确定 :Ack 在后台运行是否相同。