我正在编写一个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,它是一个文字控件--M char,不是插入符号,后面是M)。
显然,解决方案不是使用%G,但我在这里感到困惑。
如何从这里的行中删除行尾字符?同时,删除最初的||也是一个好处,但我认为在Vim中是不可能的。
提前感谢!
编辑以使输入文本看起来更清晰,
发布于 2018-10-17 17:17:03
嗯,结果我找到了一个解决方案,可能不是很好,但它是有效的,使用尝试和错误。
set errorformat=%\\(Some Text%*[^.]).%\\)%\\@=%m也就是说,解决方案是在errorformat中使用errorformat模式(regex)表达式,这个表达式看起来非常神秘,但可以与%*一起在行的其余部分匹配未知的文本。
该解决方案使用\@=,这是一个零宽度匹配,需要行的某种终止符,它在之前出现在(我想忽略的^M字符)之前,还需要一些文本出现在行的某个位置,以匹配这一行,而不是其他文本。
也许有一个更好的解决方案,但这是我自己所能做的最好的。
https://stackoverflow.com/questions/52821483
复制相似问题