Nhận giá trị hiện tại của một cài đặt trong Vim


274

Có cách nào đơn giản để tìm ra giá trị hiện tại của cài đặt Vim được chỉ định không? Nếu tôi muốn biết giá trị hiện tại của, giả sử tabstop, tôi có thể chạy:

:set tabstop

không thông qua một đối số và Vim sẽ cho tôi biết giá trị hiện tại. Điều này tốt cho nhiều cài đặt, nhưng nó không tốt cho những cài đặt đúng hoặc sai. Ví dụ: nếu tôi muốn tìm ra giá trị hiện tại của expandtab, đang chạy:

:set expandtab

sẽ thực sự cho phép expandtab. Tôi chỉ muốn tìm hiểu nếu nó được kích hoạt hay không.

Đây là loại công việc tôi muốn:

:echo &l:expandtab

nhưng có vẻ khá dài dòng Có cách nào nhanh hơn không?

Câu trả lời:


378

Thêm một? đánh dấu sau tên thiết lập và nó sẽ hiển thị giá trị

:set expandtab?

15
Lưu ý rằng set <...>?cú pháp sẽ hoạt động cho "cài đặt" là các tùy chọn , nhưng không phải cho "cài đặt" là các biến . Vì vậy, ví dụ, để tìm hiểu chế độ tô sáng cú pháp hiện tại là gì (được mã hóa trong một biến, không phải là một tùy chọn), bạn cần phải làm echo b:current_syntax.
Maxy-B

16
Nếu bạn cũng muốn biết nơi các tùy chọn đã được thiết lập từ, sử dụng verbose. Trong ví dụ này, :verbose set expandtab.
mkobit 19/03/2016

1
Làm thế nào để xem giá trị hiện tại của các cài đặt như behave? Tôi đã thử behave?set behave?. Thật không may, chúng không hoạt động.
jdhao

38

Ngoài ra, &biểu tượng có thể được sử dụng để có nghĩa là "tùy chọn" - ví dụ:

let x = &expandtab
echo &expandtab

Có phải cũng có một tùy chọn để lấy giá trị của một phần tử danh sách? (ví dụ: không gian của danh sách)
816-8055

Tôi tin rằng listchars là một chuỗi bình thường, không phải là Danh sách, mặc dù tôi đoán bạn có thể làm một cái gì đó nhưsplit(&listchars, ',')
cdyson37

9

Nếu bạn không nhớ những gì bạn muốn kiểm tra,

bạn có thể kiểm tra tất cả các cài đặt bằng cách sử dụng

:set all

và tất cả các cài đặt sẽ được liệt kê.


4

Ngoài ra còn có các cài đặt vim bổ sung cũng có thể được hiển thị, chẳng hạn như:

:highlight

Để biết danh sách đầy đủ, hãy xem: http://vim.wikia.com/wiki/Displaying_the_civerse_Vim_en môi trường

Chỉnh sửa: Có một số hiểu lầm về câu trả lời của tôi. Điều này không làm việc cho bất kỳ lệnh. Nhưng nó hoạt động cho tất cả các lệnh được liệt kê trong URL ở trên.


Điều này không hoạt động. Tôi muốn kiểm tra xem autowritelà trên. :set autowrite?Làm công việc.
Vào

@Atcold: điều này không hoạt động đối với một số cài đặt, chỉ có loại truy vấn này sẽ hoạt động.
gmarmstrong

@gmarmstrong: Tôi thấy câu trả lời đã được chỉnh sửa với nhận xét như vậy.
Vào
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.