web-dev-qa-db-ja.com

Vimセッションが現在使用しているカラースキームを確認する方法

set Vimカラースキームを発行することにより

:colorscheme SCHEME_NAME

しかし、奇妙なことに、現在使用されているスキームを取得することはできません

:colorscheme

これは「E471: Argument required」になります。また、:setの出力にカラースキームがリストされていません。

では、使用中の現在の配色を把握するにはどうすればよいですか(テーマが認識されるまで手動で切り替える以外)。

96
gotgenes

保証された方法はありません(カラースキームは、本質的にソースとなる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
146
DrAl

最適なオプションは、現在のvimで:coloまたは:colorschemeを使用することです。実際のカラースキームテキストが表示されます。見てください、

:help colorscheme 

詳細については。

34
Gattoo

DrAlの回答の1行バージョン:

_let current_scheme = get(g:, 'colors_name', 'default')
_

変数がまだ設定されていない場合、get()関数は_'default'_にフォールバックします。

0
joeytwiddle