Cách biết phiên Vim hiện đang sử dụng màu nào


107

Bạn có thể đặt bảng màu Vim bằng cách phát hành

:colorscheme SCHEME_NAME

nhưng, kỳ lạ thay, bạn không thể lấy lược đồ hiện đang được sử dụng bằng cách phát hành

:colorscheme

vì điều này dẫn đến " E471: Argument required". Tôi cũng không thấy bảng màu được liệt kê trong đầu ra của :set.

Vì vậy, làm thế nào để bạn tìm ra bảng màu hiện tại đang được sử dụng (ngoài việc chuyển đổi các chủ đề theo cách thủ công cho đến khi bạn nhận ra nó)?

Câu trả lời:


159

Không có cách nào được đảm bảo (vì một bảng màu về cơ bản là một tải các lệnh vim có nguồn gốc). Tuy nhiên, theo quy ước phải có một biến g:colors_nameđược đặt thành tên của bảng màu.

Do đó, hãy thử điều này:

echo g:colors_name

Nếu bạn nhận được E121, đó là một bảng màu được tạo ra kém hoặc đó là bảng màu mặc định.

Một cách tốt hơn để làm điều này là (đối với các phiên bản vim gần đây):

function! ShowColourSchemeName()
    try
        echo g:colors_name
    catch /^Vim:E121/
        echo "default
    endtry
endfunction

Sau đó làm:

:call ShowColourSchemeName()

Nếu nó nói "mặc định", hãy làm :colorscheme defaultvà xem màu sắc có thay đổi không. Nếu có, bạn đang sử dụng một bảng màu không đúng định dạng và bạn không thể làm gì nhiều ngoài việc chuyển đổi chủ đề theo cách thủ công cho đến khi bạn nhận ra nó.

Biến g:colors_nameđược ghi lại ở đây :

:help colorscheme

Dấu ngoặc kép đóng sau khi "defaultthiếu?
Benjamin W.

38

Tùy chọn tốt nhất là sử dụng :colohoặc :colorschemetrong vim hiện tại và văn bản colorcheme thực tế được hiển thị. Hãy xem,

:help colorscheme 

để biết thêm chi tiết.


3
Nó không hiệu quả với tôi. Nó nói default. Và bảng màu tôi nhận được khi thực hiện :colo defaultnó là một bảng màu khác.
daVe

4

Phiên bản một dòng của câu trả lời của DrAl:

let current_scheme = get(g:, 'colors_name', 'default')

Các get()chức năng sẽ rơi trở lại 'default'nếu biến vẫn chưa được thiết lập.

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.