我想在 Vim 中有效地管理不同的项目。当需要重建时,我在不同的位置有几个 Makefile。在 Vim 中,如果我使用:make
它,它将尝试在我当前的位置编译 Makefile。
我可以使用,:make -f URL-MAKEFILE
但它的工作量太大。有没有一种方法或插件可以有效地构建所有这些单独的 makefile,而无需我记住所有 Makefile url?
你可以指示 vim 在你的目录结构中向上查找一个“Makefile”文件,然后用它调用 :make
:exec ":make -f " . findfile("Makefile", ".;")
这样,它将调用与当前打开的缓冲区的项目树相关的 Makefile。
但是,我建议不要使用 make -f path_to_makefile 那么多,因为它会在您所在的目录中启动 make 命令。通常 Makefile 被编写用于项目树的顶部(然后最终在子目录中调用更多 Makefile),因此调用“make -C path_to_top_of_tree”更自然
要找到包含 Makefile 的第一个目录,然后使用它调用 :make -C :
:exec ":make -C " . fnamemodify(findfile("Makefile", ".;"), ":h")
不知道是否有这样的插件,但您可以为您的 URL 创建一种快捷方式。创建主 makefile 并添加目标,例如:
.PHONY : shortcut
make -f URL target
之后你可以打电话:make shortcut
我正在维护多个项目,每个项目都有自己的 makefile 和众多local_vimrc脚本之一。
实际上,我还&makeprg
用我的BuildToolsWrapper插件封装了选项的更新(更喜欢 Vim-Addons-Manager 来安装它)。它更进一步,使我能够选择编译目录和其他选项(这在使用 CMake 生成 makefile 时非常有用)。请参阅此处的两个 *.vim 文件以了解我如何配置我的项目。