2011-03-29 70 views
2

我正在使用VIM處理Visual Studio解決方案,並編寫了一個從當前文件向上搜索文件系統並查找第一個* .sln文件的函數。將makeprg設置爲VIM功能?

我想要做的是這樣的:

​​

這樣一來,我可以用我的當前設置的鍵綁定爲:make來構建解決方案文件。

這可能嗎?

+1

我發現了一個解決方案,雖然在技術上不是我自己的問題的答案:)因爲我每次進入C#或VB.net緩衝區時加載編譯器設置,我只是在做一個'let&l:makeprg =' 「devenv.com」。 FindSLN()。 '「/ Build Debug」「在編譯器設置文件中。我會留下這個問題,但讓其他人有機會回答。 – rossipedia 2011-03-29 17:06:57

+0

最好將解決方案作爲答案發布。 – 2011-07-31 09:58:39

+0

儘管沒有嚴格回答您的問題,但我發現我最喜歡的工作流是將':cd'(或更改':Ex'中的dir)到項目的根目錄。然後你可以簡單地':set makeprg = msbuild'。 – 2013-01-30 13:50:49

回答

3

我已經找到了解決辦法,雖然不是技術上的答案,我自己的問題:)

由於我加載每當我進入一個C#或VB.net緩衝編譯器設置,我只是要做到:

let &l:makeprg='"devenv.com "' . FindSLN() . '" /Build Debug"' 

在編譯器設置文件中。這給了我想要的效果,但是它在技術上不會將makeprg設置爲在調用:make時將被評估的函數,就像最初請求的那樣。

0

您可以定義的映射/功能/命令/ whatver說:

  • 確保makeprg是正確設置
  • 執行:使
  • 執行:C打開,如果有一個錯誤。

就我個人而言,當我編輯目錄中的文件(that I associate to a project)時,我寧願設置makeprg。和幾個映射切換編譯模式方面(調試/釋放,背景/否,目標(交叉編譯/否),多線程編譯/否)等。每當其中一個方面發生變化時,我都會更新makeprg。