我想在Vim中有效管理不同的项目。在重建的时候,我在不同的位置有几个Makefile。在Vim中,如果我使用:make
,它将尝试在我当前位置编译Makefile。
我可以使用或:make -f URL-MAKEFILE
,但这太过分了。有没有办法或插件以有效的方式构建所有这些单独的makefile而不记得所有Makefile url?
答案 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。