对于在sourcefiles的父目录中有Makefile的项目,在vim我有我的 makeprg变量设置如下:
:set makeprg=[[\ -f\ Makefile\ ]]\ &&\ make\ \\|\\|\ make\ -C\ ..
正如thread
中所述此替代方法适用于父目录中的Makefile,但在Makefile位于当前目录时会中断。
vim make和无限循环:make命令。如果它没有找到Makefile,我已经玩过运行命令,并且我确定在运行make之后,vim运行三元组的失败案例(作为编辑器命令)。
因此新的调用:make扩展为另一个:无限制。
如何阻止vim尝试执行此操作?
答案 0 :(得分:5)
运行三元组的失败案例是因为显然当前目录中make
的调用返回错误。您可以通过如下设置makeprg
来阻止此缺陷:
:let &makeprg = 'if [ -f Makefile ]; then make; else make -C ..; fi'
使用let
构造避免了逃逸标志的必要性。这是在您引用的同一个帖子here中建议的。
或者您可以修复当前目录中的make
问题,以便它不会返回错误代码...