Vim错误格式:使用%D更改目录

4

我正在努力寻找适合的Vim errorformat,当当前目录是包含错误文件的目录的兄弟目录时使用。例如:

errorformat
errorformat/model
errorformat/spec

Vim的makeprg选项被设置为在errorformat/spec中执行文件。我从errorformat/model运行make。Vim被设置为使用当前文件所在的目录作为工作目录。

为了测试,我在errorformat/model/errorformat.vim中运行以下命令:

set makeprg=ruby\ ~/errorformat/spec/errorformat_spec.rb
let &efm="%D%f,%f:%l"
make!
copen

正如您所看到的,这将在兄弟目录中运行一个Ruby文件,该文件只是执行以下操作
puts %{errorformat}
puts %{./spec/errorformat_spec.rb:1}
exit 5

期望的效果是,当我从不同的目录运行规范时,Vim将使用errorformat中的%D让我打开规范文件。但它没有起作用。特别是,我似乎无法让%D%f做我所期望的事情。当我运行这个测试时,QuickFix窗口显示:
|| errorformat
|| ./spec/errorformat_spec.rb:1

双竖线表示 errorformat 中的 %D%f 部分无法识别输出。这似乎还会阻止下一行被 %f:%l 识别。
我一定是忽略了什么非常简单的东西!

你能展示一下你正在尝试解析的错误文件的输出吗?这不是分隔符(在%D和%f之间)的问题吗? - mb14
我正在尝试解析的输出是`errorformat` `./spec/errorformat_spec.rb:1`我似乎无法将此输出放在注释中的单独行上。 - Mark Wilden
1个回答

1
问题出在错误格式的顺序上。`%D%f` 部分需要放在 `%f:%l` 部分之后

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接