0

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

我可以使用,:make -f URL-MAKEFILE但它的工作量太大。有没有一种方法或插件可以有效地构建所有这些单独的 makefile,而无需我记住所有 Makefile url?

4

3 回答 3

4

你可以指示 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")
于 2013-06-13T21:08:21.377 回答
1

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

.PHONY : shortcut
      make -f URL target

之后你可以打电话:make shortcut

于 2013-06-13T14:05:00.320 回答
0

我正在维护多个项目,每个项目都有自己的 makefile 和众多local_vimrc脚本之一。

实际上,我还&makeprg用我的BuildToolsWrapper插件封装了选项的更新(更喜欢 Vim-Addons-Manager 来安装它)。它更进一步,使我能够选择编译目录和其他选项(这在使用 CMake 生成 makefile 时非常有用)。请参阅此处的两个 *.vim 文件以了解我如何配置我的项目

于 2013-06-13T15:35:03.207 回答