Я не знаю простого способа получить значение по умолчанию для опции.Единственный известный мне способ - сохранить текущее значение, сбросить параметр по умолчанию, сохранить значение по умолчанию и восстановить исходное значение.
function! IsDefault(option)
" Get the current value
exe "let l:save_value = &" . a:option
" Reset to default
exe "set " . a:option . "&"
" Get the default value
exe "let l:save_default = &" . a:option
" Restore original value
exe "set " . a:option . "=" . l:save_value
return l:save_value == l:save_default
endfunction
Дополнительная подзадача состоит в том, что восстановление для строковых / числовых и логических параметров отличается- для логического варианта восстановление должно быть
if l:save_value
exe "set " . a:option
else
exe "set no" . a:option
endif