sta*_*tti 5 vim configuration editor
具体来说,我只想在尚未更改的情况下设置makeprg选项.有什么办法吗?
您可以使用 访问选项的内容&。因此,在这种情况下,您可以检查该选项是否为“空”,如下所示:
if &makeprg == ""
set makeprg=new_value
endif
Run Code Online (Sandbox Code Playgroud)
- - 编辑 - -
Xavier 提出了一个很好的观点,即 的默认值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
Run Code Online (Sandbox Code Playgroud)
call SetMakePrg("my_make")因此,仅当该选项当前不是默认值时,调用才会修改该选项。