[英]Set “makeprg” via modeline in Vim
默認情況下, makeprg
設置為make
。 但是,我有很多項目,其中不同的構建配置和目標位於同一目錄中。
當然,這需要在調用make
時指定一個目標。
例如,我有一個通過調用make foo
來構建源文件<foo>.cpp
的項目,該項目包含許多此類源文件。
當我在Vim中編輯說<foo>.cpp
時, makeprg
將makeprg
設置為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.