Vim 用于在 QuickFix 中删除部分消息的错误格式字符串
Vim errorformat string to show message in QuickFix removing part of it
我正在写一个 errorformat
字符串,它在大多数情况下都有效。我的问题是我有这样的行作为 makeprg
输出:
Some text I want to show in the QuickFix window^M
是的,该行以我要删除的虚假 ^M
字符结尾。所以,我在 QuickFix window 中想要的是这个,没有 ^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 字符,而不是插入符号后跟 M)。
显然解决方案没有使用 %G
但我在这里不知所措。
如何从此处的行中删除行结束符?而且,删除初始 ||
将是一个加号,但我认为在 Vim.
中是不可能的
提前致谢!
已编辑以使输入文本看起来更清晰
嗯,事实证明我找到了一个解决方案,可能不是很好但它有效,通过反复试验。
set errorformat=%\(Some Text%*[^.]).%\)%\@=%m
也就是说,解决方案是在 errorformat
中使用 Vim
模式(正则表达式)表达式,它看起来很神秘但可以工作,与 %*
一起匹配未知文本在线路的其余部分
该解决方案使用 \@=
,零宽度匹配,并且需要某种类型的行终止符,该行出现在 之前 ^M
字符我想忽略该行某处出现的某种文本以匹配该行而不匹配其他行。
可能有更好的解决方案,但这是我自己能做的最好的。
我正在写一个 errorformat
字符串,它在大多数情况下都有效。我的问题是我有这样的行作为 makeprg
输出:
Some text I want to show in the QuickFix window^M
是的,该行以我要删除的虚假 ^M
字符结尾。所以,我在 QuickFix window 中想要的是这个,没有 ^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 字符,而不是插入符号后跟 M)。
显然解决方案没有使用 %G
但我在这里不知所措。
如何从此处的行中删除行结束符?而且,删除初始 ||
将是一个加号,但我认为在 Vim.
提前致谢!
已编辑以使输入文本看起来更清晰
嗯,事实证明我找到了一个解决方案,可能不是很好但它有效,通过反复试验。
set errorformat=%\(Some Text%*[^.]).%\)%\@=%m
也就是说,解决方案是在 errorformat
中使用 Vim
模式(正则表达式)表达式,它看起来很神秘但可以工作,与 %*
一起匹配未知文本在线路的其余部分
该解决方案使用 \@=
,零宽度匹配,并且需要某种类型的行终止符,该行出现在 之前 ^M
字符我想忽略该行某处出现的某种文本以匹配该行而不匹配其他行。
可能有更好的解决方案,但这是我自己能做的最好的。