Як сказати, яку кольорову схему використовує зараз сеанс Vim


107

Ви можете встановити кольорову схему Vim, видавши

:colorscheme SCHEME_NAME

але, як не дивно, ви не можете отримати використану в даний час схему, видавши

:colorscheme

оскільки це призводить до " E471: Argument required". Я також не бачу кольорову схему, перелічену на виході :set.

Отже, як ви вирішите з’ясувати поточну колірну схему, що використовується, окрім ручного перемикання тем, поки ви не розпізнаєте її?

Відповіді:


159

Немає гарантованого способу (оскільки кольорова схема - це по суті набір команд vim, які розміщуються). Однак за домовленістю повинна бути змінна, g:colors_nameяка встановлюється під назвою кольорової гами.

Тому спробуйте це:

echo g:colors_name

Якщо ви отримали E121, це або неякісна кольорова гама, або це стандартна.

Більш блискучий спосіб зробити це (для останніх версій vim):

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

Потім зробіть:

:call ShowColourSchemeName()

Якщо на ньому написано "за замовчуванням", зробіть :colorscheme defaultі подивіться, чи змінюються кольори. Якщо це так, ви використовуєте неправильну кольорову схему, і ви не можете багато з цим зробити, крім переключення тем вручну, поки не розпізнаєте.

Змінна g:colors_nameзадокументована тут :

:help colorscheme

Чи є заключна подвійна цитата після "defaultпропуску?
Бенджамін В.

38

Найкращим варіантом є використання :coloабо :colorschemeв поточній версії, і відображається фактичний текст схеми кольорів. Будь ласка, дивіться,

:help colorscheme 

для отримання детальної інформації.


3
Це не працює для мене. Це говорить default. А колірна гамма, яку я отримую, коли виконую, :colo defaultце ще одна.
daVe

4

Однорядкова версія відповіді DrAl:

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

get()Функція буде падати назад , 'default'якщо змінна ще не встановлена.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.