Cụ thể, tôi chỉ muốn đặt tùy chọn makeprg nếu nó chưa được thay đổi. Bất kỳ cách nào để làm điều này?Trong vim, có cách nào để: đặt một tùy chọn chỉ khi nó chưa được đặt?
5
A
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.
Các vấn đề liên quan
- 1. Cách đặt thuộc tính Ant chỉ khi không được đặt
- 2. Android - Làm cách nào để đặt tùy chọn trong mã
- 3. Làm cách nào để biết tham số tùy chọn trong phương thức/hàm PHP đã được đặt hay chưa?
- 4. jQuery - đặt giá trị của một lựa chọn thành một trong các tùy chọn của nó
- 5. Cách đặt giá trị Đặt tùy chọn trong CRM 2011?
- 6. Cách đặt tăng :: tùy chọn quay trở lại trạng thái chưa được khởi tạo?
- 7. BitmapFactory.decodeStream trả về null khi các tùy chọn được đặt
- 8. Đặt tùy chọn này được chọn trong MVC3
- 9. đặt tùy chọn "được chọn" thuộc tính từ tùy chọn được tạo động
- 10. Làm cách nào để bỏ đặt biến trong Vim?
- 11. Rails đã cài đặt nhưng lệnh đường ray cho biết nó chưa được cài đặt
- 12. registerReceiver cho Broadcast chỉ khi nó chưa được đăng ký?
- 13. C++ Chưa được cài đặt Trong Cygwin
- 14. Làm cách nào để tải một hàm chưa được đặt tên trong Lua?
- 15. Đối số được đặt tên tùy chọn trong Mathematica
- 16. Làm cách nào để biết một gói nhất định đã được cài đặt chưa?
- 17. Làm cách nào để đặt tùy chọn được chọn bằng ứng dụng Selenium WebDriver (selenium 2.0) trong ruby
- 18. Tham số chưa được đặt tên có thực sự được chuyển trong khi gọi hàm không?
- 19. Làm cách nào để sử dụng D3 (hoặc chỉ javascript) để đặt tùy chọn biểu mẫu là "đã chọn"
- 20. Cách đặt các tùy chọn được chọn mặc định trong trang chi tiết sản phẩm Magento
- 21. Đặt tùy chọn fmt trong numpy.savetxt
- 22. JQuery đặt nhiều tùy chọn thả xuống để chọn
- 23. Đặt tùy chọn khẩn cấp trong phpmailer
- 24. Tại sao không có null-terminator được đặt tùy ý trong một chuỗi chấm dứt nó?
- 25. Cách đặt tùy chọn mặc định trong datepicker()
- 26. Cách đặt các tùy chọn SSLContext trong Ruby
- 27. Làm cách nào để kiểm tra xem biến môi trường chưa được đặt hoặc được đặt thành chuỗi rỗng?
- 28. Làm thế nào để cập nhật tùy chọn tùy chỉnh của mục đặt hàng trong Magento?
- 29. Phát hiện một ứng dụng được cài đặt hay chưa?
- 30. được đặt tên là đối số tùy chọn PHP?
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. –