默认情况下,makeprg只设置为make。但是,我有很多项目,不同的构建配置和目标驻留在同一个目录中。
当然,这需要我在调用make时指定一个目标。
例如,我有一个通过调用<foo>.cpp构建源文件make foo的项目,该项目包含许多这样的源文件。
当我编辑Vim中的said <foo>.cpp 时,makeprg 被设置为 make <foo>**?** --我在每个文件中都考虑过建模,但是禁止通过modeline设置makeprg (出于安全考虑)。
请注意,此设置仅适用于某些项目,因此我不希望修改make的通用值,否则我只需
set makeprg=make\ expand("%:t:r")(或类似的东西)在我的.gvimrc。
发布于 2010-07-28 16:39:51
我正在使用我的插件,它允许特定于项目的设置来调优这类事情。这样,我的.vimrc就不会被特定于项目的东西弄得乱七八糟。相反,在每个项目根目录中,我都有一个包含各种设置的_vimrc_local.vim文件。
另一种解决方案是将:make调用封装到另一个命令或映射中,该命令或映射使用一个变量调用:make,您可以使用另一个插件:让-模型设置该变量。
PS:.gvimrc包含特定于vim图形版本的内容。通过将您的设置放入您的.gvimrc中,将不会配置普通vim。
发布于 2010-07-28 15:04:50
你应该能够绘制:make %<地图,我相信它能做你想做的事
发布于 2010-07-29 20:44:42
如果您可以根据项目的文件夹而不是modeline来区分您的项目,那么应该可以使用自动命令进行类似的操作。下面是来自:help autocmd-patterns的示例和示例代码的组合。
:autocmd BufRead /source/foo-project/*.cpp set makeprg=make\ expand("%:t:r")(请注意,我没有测试这个确切的命令,而是根据vimrc中的文件类型设置makeprg的一些自动命令)
https://stackoverflow.com/questions/3354059
复制相似问题