簡體   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