5
具體而言,我想只在makeprg選項尚未更改時才設置。任何方式來做到這一點?在vim中,有沒有辦法:僅在未設置選項的情況下設置選項?
具體而言,我想只在makeprg選項尚未更改時才設置。任何方式來做到這一點?在vim中,有沒有辦法:僅在未設置選項的情況下設置選項?
您可以使用&
訪問選項的內容。因此,在這種情況下,你可以檢查選項是「空」是這樣的:
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")
將修改的選項,只有當它是不目前是默認值。
我不確定makeprg的默認值是否爲空,我猜默認值是'make'(但它可能會因操作系統等而異)。::verbose set makeprg?'返回makeprg = make不帶文件名我想這意味着它是默認值。 –