2011-09-05 23 views

Trả lời

4

Bạn có thể truy cập nội dung của tùy chọn bằng cách sử dụng &. Vì vậy, trong trường hợp này bạn có thể kiểm tra nếu tùy chọn là "trống rỗng" như thế này:

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

--- EDIT ---

Xavier làm cho điểm tốt mà giá trị mặc định của makeprg không phải là một chuỗi rỗng. Bạn có thể sử dụng set {option}& để thiết lập một tùy chọn để mặc định của nó, vì vậy sau đây có thể được sử dụng để thay đổi giá trị chỉ khi giá trị hiện tại là mặc định:

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 

Vì vậy, gọi call SetMakePrg("my_make") sẽ thay đổi lựa chọn duy nhất nếu nó không phải là hiện là mặc định.

+2

Tôi không chắc giá trị mặc định của makeprg trống, tôi đoán mặc định là 'make' (nhưng nó có thể thay đổi tùy theo OS, v.v.): verbose set makeprg? 'Trả về makeprg = make mà không có tên tệp Tôi đoán điều này có nghĩa là nó là giá trị mặc định. –

Các vấn đề liên quan