Có cách nào để đặt tùy chọn thành giá trị của tùy chọn khác không?


7

Ví dụ: tôi muốn đặt

set tabstop=4
set shiftwidth=4

Có cách nào để làm một cái gì đó như

set tabstop=4
set shiftwidth=tabstop

vì vậy tôi có thể đặt cả hai giá trị bằng cách chỉ thay đổi một số duy nhất?

Câu trả lời:


13

Bạn có thể sử dụng letlệnh thay thế.

Thích như vậy:

let &shiftwidth = &tabstop

Việc &chỉ định rằng tên biến là một tùy chọn Vim. Bạn cũng có thể làm :help let-optionđể biết thêm về nó:

:let &{option-name} = {expr1}
        Set option {option-name} to the result of the
        expression {expr1}.  A String or Number value is
        always converted to the type of the option.
        For an option local to a window or buffer the effect
        is just like using the |:set| command: both the local
        value and the global value are changed.

2
Lưu ý rằng bạn có thể muốn sử dụng &l:shiftwidthđể chỉ thay đổi biến cục bộ bộ đệm.
jamessan 3/03/2015

Tôi sẽ đánh dấu điều này là được chấp nhận vì về mặt kỹ thuật nó trả lời câu hỏi của tôi. Tôi vẫn phải đặt cả hai giá trị một cách riêng biệt nếu tôi muốn thay đổi giá trị tabstop / shift thong trong một phiên bản đang chạy của vim.
Chad Paradis

2

Có thể là một cách tốt hơn nhưng bạn luôn có thể làm điều này:

exec 'set shiftwidth=' . &tabstop


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.