当我在vim工作时,我当前的工作目录(./)包含我的所有源代码。我建立了一个objdir,我们称之为./builddir/
。当我使用makeprg=make\ -C\ builddir
从vim构建时,编译器警告和错误都具有../
的前缀,这意味着vim将光标带到不存在的文件。
如果我尝试不同的策略,从objdir启动vim,那么我就不能简单地执行gf
或:e myfile.h
之类的命令。
是否存在所有这些都可以工作的中间地带,比如给vim第二个目录搜索它是否找不到当前工作目录中的文件?或者也许让gcc使用不同的前缀?
答案 0 :(得分:1)
最简单的解决方案是使用sed过滤make输出以替换输出路径名。 (我已经实现了一个非常类似的东西,将cygwin路径名转换为vim的win32风格的windows路径名)。
类似的东西:
:let &makeprg .= '2>&1 | sed "s#^\.\./##g"'
(可能是\|
而不是|
,我不记得了)