Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
父目录中的Vim Makefile_Vim_Makefile - Fatal编程技术网

父目录中的Vim Makefile

父目录中的Vim Makefile,vim,makefile,Vim,Makefile,对于在sourcefiles的父目录中有Makefile的项目,在vim中我有我的 makeprg变量集如下: :set makeprg=[[\ -f\ Makefile\ ]]\ &&\ make\ \\|\\|\ make\ -C\ .. 正如本文所建议的那样 此替换对于父目录中的Makefile非常有效,但在Makefile位于当前目录中时会中断 vim生成和无限循环:生成命令。如果找不到Makefile,我已经使用了要运行的命令,并且我已经确定在运行make之后,vim

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

:set makeprg=[[\ -f\ Makefile\ ]]\ &&\ make\ \\|\\|\ make\ -C\ ..
正如本文所建议的那样

此替换对于父目录中的Makefile非常有效,但在Makefile位于当前目录中时会中断

vim生成和无限循环:生成命令。如果找不到Makefile,我已经使用了要运行的命令,并且我已经确定在运行make之后,vim仍然会运行三元函数的fail case(作为一个编辑器命令)

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


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

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

:let &makeprg = 'if [ -f Makefile ]; then make; else make -C ..; fi'
使用
let
结构避免了逃生标志的必要性。这是在您提到的同一个线程中建议的


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

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

:let &makeprg = 'if [ -f Makefile ]; then make; else make -C ..; fi'
使用
let
结构避免了逃生标志的必要性。这是在您提到的同一个线程中建议的


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

如果我可以为此oneliner执行功能请求。。。是否可以隐藏make进入该目录的事实?使用此解决方案,您必须按enter键两次。没关系,这可以通过设置
set cmdheight=2
来处理。如果使用参数运行
:make
,则需要在makeprg行中指定它们的位置(
$*
)。我还添加了
-C
以在当前缓冲区的direcory/sub目录中运行make:
if[-f Makefile];然后使-C%:p:h$*;else make-C%:p:h/.$*;fi
如果我可以为这台oneliner执行功能请求。。。是否可以隐藏make进入该目录的事实?使用此解决方案,您必须按enter键两次。没关系,这可以通过设置
set cmdheight=2
来处理。如果使用参数运行
:make
,则需要在makeprg行中指定它们的位置(
$*
)。我还添加了
-C
以在当前缓冲区的direcory/sub目录中运行make:
if[-f Makefile];然后使-C%:p:h$*;else make-C%:p:h/.$*;fi