微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vim:错误格式匹配所有内容

我试图将以下错误efm匹配:

AssertionError: 1 == 2
    at /home/strager/projects/blah/blah.js:13:37

错误消息可以是任何内容(即它并不总是与AssertionError匹配:.*或.*错误:.*格式).一般格式是:

errormessage
    at filename:line:column

我的问题是错误消息匹配任何行;我需要将错误消息限制为仅一行,并且只有在匹配的“at”行后才匹配.

我尝试过以下efm:

set efm=%Z\ \ \ \ at\ %f:%l:%c,%E%m
" %Z    at %f:%l:%c,%E%m

这几乎可以工作,但它除了错误之外还匹配状态行(例如错误之前和之后的非错误).如何强制%E%m …%Z总共只有两行(一行用于错误消息,一行用于at行)?如果需要,我可以访问makeprg的标准UNIX工具.

解决方法

这有用吗?

set efm=%Z\ \ \ \ at\ %f:%l:%c,%E%m,%-G%.%#

%-G%.%#告诉vim忽略与其他模式不匹配的整行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐