我正在写一个errorformat
字符串,它在大多数情况下都起作用。我的问题是我有这样的行作为makeprg
输出:
Some text I want to show in the QuickFix window^M
是的,该行以我要删除的虚假^M
字符结尾。因此,我想在QuickFix窗口中找到的是这个字符,没有^M
字符:
|| Some text I want to show in the QuickFix window
但是我有这个:
|| Some text I want to show in the QuickFix window^M
到目前为止,这是我的errorformat
的相关部分:
set errorformat=%+GSome text%m
我已经测试过类似的东西,但没有成功:
set errorformat=%+GSome text%m%-G^M%.%#
但是会引发错误(不是来自^M
的错误,它是字面意义上的Control-M字符,而不是带有M的插入符号)。
很明显,解决方案未使用%G
,但我在这里很茫然。
如何从此处的行中删除行结束符?而且,删除开头的||
将是一个加号,但是我认为在Vim中是不可能的。
谢谢!
进行了编辑,以使输入文字看起来更清晰
答案 0 :(得分:0)
好吧,事实证明,我发现了一个解决方案,可能不是很好,但是使用了反复试验后就可以了。
set errorformat=%\\(Some Text%*[^.]).%\\)%\\@=%m
也就是说,解决方案是使用Vim
中的errorformat
模式(正则表达式)表达式,虽然外观看起来很神秘,但是可以和%*
一起使用,以匹配该行的其余部分
该解决方案使用宽度为零的\@=
,并且该行需要某种终止符,该终止符出现在我要忽略的^M
字符之前,并且某种文本出现在该行的某处以匹配该行,而不是其他行。
也许有更好的解决方案,但这是我自己能做的最好的事情。