在vim中管理多个makefile

时间:2013-06-13 12:44:30

标签: vim makefile

我想在Vim中有效管理不同的项目。在重建的时候,我在不同的位置有几个Makefile。在Vim中,如果我使用:make,它将尝试在我当前位置编译Makefile。

我可以使用或:make -f URL-MAKEFILE,但这太过分了。有没有办法或插件以有效的方式构建所有这些单独的makefile而不记得所有Makefile url?

3 个答案:

答案 0 :(得分:4)

您可以指示vim在目录结构中向上查找“Makefile”文件,然后调用:make with it

:exec ":make -f " . findfile("Makefile", ".;")

这样它将调用与当前打开的缓冲区的项目树相关的Makefile。

但是,我建议不要使用make -f path_to_makefile,因为它会在您所在的目录中启动make命令。通常Makefile被编写为在项目树的顶部使用(然后最终在子目录中调用更多的Makefile),因此调用“make -C path_to_top_of_tree”更自然

要使用Makefile在其中向上查找第一个目录,请调用:make -C with it:

:exec ":make -C " . fnamemodify(findfile("Makefile", ".;"), ":h")

答案 1 :(得分:1)

不知道是否有这样的插件,但您可以为您的网址创建一种快捷方式。 创建主makefile并添加目标:

.PHONY : shortcut
      make -f URL target

之后您可以致电:make shortcut

答案 2 :(得分:0)

我正在维护多个项目,每个项目都有自己的makefile,其中包含众多local_vimrc脚本中的一个。

实际上我还用我的BuildToolsWrapper插件封装&makeprg选项的更新(更喜欢Vim-Addons-Manager来安装它)。它更进一步,使我能够选择编译目录和其他选项(这在使用CMake生成makefile时非常有用)。请参阅两个* .vim文件here to see how I configure my projects