vim将源的相对路径的基础更改为其他目录

时间:2016-09-14 07:52:15

标签: vim

我有一个只调用make -C ..的本地Makefile。因此,我从编译器获得带有文件名的输出和相对于..的目录的路径。

现在vim无法获得quickfix的正确路径。

问:如何将vim quickfix的基本路径设置为..

我的路径结构:

<bla>/base/proj1/<localMakeFile>
<bla>/base/<globalMakefile>
<bla>/src/source1.cpp

我在/ base / proj1 /

里面编译

错误的编译器输出如下: src / source1.cpp | 141 col 54 |错误:....

但我正在努力 / proj1 / so vim无法获取文件src/source1.cpp

编辑: 我看到问题基本上与gnu make

的输出有关
make[4]: Entering directory '<bla>/...'

如果我不使用英语环境,则无法正确解析。使用export LANG=设置shell一切正常。

问:vim能解析gnu make的德语输出吗?

1 个答案:

答案 0 :(得分:0)

使用set errorformat+=<localized version>附加本地化版本应该可以。

我不知道VIM支持开箱即用。看了:set errorformat的输出,这在我的机器上是一个可怕的......

  errorformat=%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-G%f:%l: (Ea
ch undeclared identifier is reported only once,%-G%f:%l: for ea
ch function it appears in.),%-GIn file included from %f:%l:%c:,
%-GIn file included from %f:%l:%c\,,%-GIn file included from %f
:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G
%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\,,%-G%*[ ]from %f:%l,%f:%l:
%c:%m,%f(%l):%m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%
*\d]: Entering directory %*[`']%f',%X%*\a[%*\d]: Leaving direct
ory %*[`']%f',%D%*\a: Entering directory %*[`']%f',%X%*\a: Leav
ing directory %*[`']%f',%DMaking %*\a in %f,%f|%l| %m

...并通过从

更改构建过程的输出
make: Entering directory `<directory>`

make: Entering `<directory>`

我通过这样扩展errorformat来实现它:

:set errorformat+=%D%*\\a:\ Entering\ %*[`']%f'