繁体   English   中英

在Vim中通过modeline设置“ makeprg”

[英]Set “makeprg” via modeline in Vim

默认情况下, makeprg设置为make 但是,我有很多项目,其中不同的构建配置和目标位于同一目录中。

当然,这需要在调用make时指定一个目标。

例如,我有一个通过调用make foo来构建源文件<foo>.cpp的项目,该项目包含许多此类源文件。

当我在Vim中编辑说<foo>.cpp时, makeprgmakeprg设置为make <foo> 我想到了每个文件中的模式行,但是禁止通过modeline设置makeprg (出于安全考虑?)。

请注意,此设置仅适用于某些项目,因此我不想修改make常规值–否则,我只是

set makeprg=make\ expand("%:t:r")

(或类似的东西)在我的.gvimrc

我使用的是我的插件 ,该插件可以启用特定于项目的设置来调整此类内容。 这样,我的.vimrc不会因项目特定的内容而混乱。 相反,在每个项目的根目录中,我都有一个_vimrc_local.vim文件,其中包含我的各种设置。

另一个解决方案是将:make调用封装到另一个命令或映射中,然后使用一个可以通过另一个插件let -modeline设置的变量来调用:make

PS: .gvimrc旨在包含特定于vim图形版本的内容。 通过将设置放入.gvimrc ,将不会配置纯vim。

您应该能够映射:make %< ,我相信它将做您想要的

如果您不是通过modeline而是通过其文件夹来区分项目,则应该可以使用与自动命令相似的工具。 以下是来自:help autocmd-patterns的示例和您的示例代码的组合。

:autocmd BufRead /source/foo-project/*.cpp set makeprg=make\ expand("%:t:r")

(请注意,我还没有测试这个确切的命令,相反,我有一些自动命令来设置makeprg,具体取决于我的vimrc中的文件类型)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM