父目录中的Vim Makefile

时间:2013-03-09 02:06:12

标签: vim makefile

对于在sourcefiles的父目录中有Makefile的项目,在vim我有我的 makeprg变量设置如下:

:set makeprg=[[\ -f\ Makefile\ ]]\ &&\ make\ \\|\\|\ make\ -C\ ..

正如thread

中所述

此替代方法适用于父目录中的Makefile,但在Makefile位于当前目录时会中断。

vim make和无限循环:make命令。如果它没有找到Makefile,我已经玩过运行命令,并且我确定在运行make之后,vim运行三元组的失败案例(作为编辑器命令)。

因此新的调用:make扩展为另一个:无限制。

如何阻止vim尝试执行此操作?

1 个答案:

答案 0 :(得分:5)

运行三元组的失败案例是因为显然当前目录中make的调用返回错误。您可以通过如下设置makeprg来阻止此缺陷:

:let &makeprg = 'if [ -f Makefile ]; then make; else make -C ..; fi'

使用let构造避免了逃逸标志的必要性。这是在您引用的同一个帖子here中建议的。

或者您可以修复当前目录中的make问题,以便它不会返回错误代码...