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現在のvimの中で実際のカラースキームのテキストが表示されます。見てください、

:help colorscheme 

詳細については。


3
それは私には効きません。それは言うdefault。そして、実行:colo defaultしたときに得られる配色は別のものです。
2016年

4

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.