2010-07-28 31 views
2

默認情況下,makeprg設置爲make。但是,我有很多項目,其中不同的構建配置和目標駐留在同一個目錄中。在Vim中通過模式行設置「makeprg」

這當然有必要在調用make時指定目標。

例如,我已經創建了一個項目,通過調用make foo來構建源文件<foo>.cpp,並且該項目包含許多這樣的源文件。

如何在Vim中編輯<foo>.cpp時如何實現?makeprg設置爲make <foo>我想到了每個文件中的模式行,但通過模式行設置makeprg是禁止的(由於安全考慮?)。

注意,所以我不希望修改的make一般值此設置只適用於某些項目 - 中否則,我只是

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

(或類似的東西)我.gvimrc

回答

3

什麼,我用我的,使特殊的項目設置調整之類的東西的plugin。 這樣我的.vimrc不會與項目特定的東西混雜在一起。相反,在每個項目根目錄中,我有一個包含我的各種設置的_vimrc_local.vim文件。

另一個解決方案是封裝:make呼叫到另一個命令或映射,反過來調用:make用,你可以與其他插件設置一個變量:let-modeline

PS:.gvimrc旨在包含特定於vim圖形版本的內容。通過將您的設置放入您的.gvimrc,純vim將不會被配置。

+0

重的'.gvimrc'文件:當然,我我知道這一點。我正在使用兩個,我的問題只是不一致。這個插件看起來很有前途 - 事實上,我相信這正是我正在尋找的。 – 2010-07-28 18:26:24

1

你應該能夠映射:make %<,我相信會做你想要

0

如果你不能通過modeline而是通過他們的文件夾區分你的項目,它應該可能與自動命令類似。以下是來自:help autocmd-patterns的示例與示例代碼的組合。

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

(請注意,我沒有測試過這個確切的命令,而不是我有設置根據文件類型在我的vimrc makeprg一些自動)

+0

在以前的(類似的,但刪除它似乎)anwser,OP表示,他寧願不混亂他的.vimrc與項目特定的設置。 – 2010-07-29 21:16:35

+0

Örn:謝謝,但是Luc的權利。 – 2010-07-30 10:29:49