[英]Vim errorformat: how to ignore a line but leave it visible?
我知道如何让 Vim 仅显示快速修复 window 中的错误消息,并隐藏其他所有内容,但这并不是我想要的。
我希望快速修复 window 有我完整的构建日志,作为上下文,但只有实际的错误消息突出显示并为:cnext
启用。
我几乎可以明白:没有模式匹配时的默认行为是做正确的事情; vim 在这些行之前带有双杠,这很好:
|| cc -c myfile.c -o myfile.o
myfile.c|123| error: ......
问题是当我有一条与错误模式匹配的行时,但不应该(基本上任何带有随机冒号的行)。 我可以添加一个%-G
模式来忽略它,但这也会将它隐藏起来,这没有帮助。
例如-DVAR="1:2"
可能会被标记为如下错误:
cc -DVAR="1 |2| " -c myfile.c -o myfile.o
myfile.c|123| error: ......
...在这种情况下,我不希望它隐藏cc
行,但我确实想忽略它以进行错误处理。
我如何编写一个异常模式,它只是说“假装没有匹配的东西并做默认的双栏操作”?
您可能需要在errorformat
的开头放置一个格式字符串,它与cc
匹配(并排除所有其他错误),但也让整个字符串(包括cc
)被视为消息%m
。
如果你说cc%m
那么cc
将不是%m
的一部分。 只有cc
之后的字符才会成为%m
的一部分。
一种解决方案是使用零宽度前瞻正则表达式,如下所述: Vim errorformat: include part of expression in message string
'errorformat'
中错误字符串的顺序非常重要。 您会希望新的错误字符串早于可能以错误方式匹配此字符串的任何其他错误字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.