2011-09-05 36 views

回答

4

您可以使用&訪問選項的內容。因此,在這種情況下,你可以檢查選項是「空」是這樣的:

if &makeprg == "" 
    set makeprg=new_value 
endif 

---編輯---

澤維爾使好點的makeprg默認值不一個空的字符串。您可以使用set {option}&來設置一個選項,它的默認,所以下面可以用來更改值僅在當前的默認值是:

function! SetMakePrg(new_value) 
    let cur_value=&makeprg 
    " let new_val=a:new_value 
    set makeprg& 
    if &makeprg == cur_value 
     " cur_value is default: set to new value 
     exe "set makeprg=" . a:new_value 
    else 
     " cur_value is not default: change it back 
     exe "set makeprg=" . cur_value 
    endif 
endfunction 

所以調用call SetMakePrg("my_make")將修改的選項,只有當它是不目前是默認值。

+2

我不確定makeprg的默認值是否爲空,我猜默認值是'make'(但它可能會因操作系統等而異)。::verbose set makeprg?'返回makeprg = make不帶文件名我想這意味着它是默認值。 –

相關問題