Jak sprawdzić, jakiego schematu kolorów używa sesja Vima


107

Możesz ustawić schemat kolorów Vima, wydając

:colorscheme SCHEME_NAME

ale, co dziwne, nie możesz uzyskać aktualnie używanego schematu, wydając

:colorscheme

ponieważ skutkuje to „E471: Argument required ”. Nie widzę też schematu kolorów wymienionego na wyjściu programu :set.

Jak więc dowiedzieć się, jaki jest aktualnie używany schemat kolorów (poza ręcznym przełączaniem motywów, dopóki go nie rozpoznasz)?

Odpowiedzi:


159

Nie ma żadnego gwarantowanego sposobu (ponieważ schemat kolorów to w zasadzie ładunek poleceń Vima, które są pobierane). Jednak zgodnie z konwencją powinna istnieć zmiennag:colors_name która jest ustawiona na nazwę schematu kolorów.

Dlatego spróbuj tego:

echo g:colors_name

Jeśli dostaniesz E121, jest to albo słabo wykonany schemat kolorów, albo domyślny.

Bardziej błyszczącym sposobem na zrobienie tego jest (dla najnowszych wersji vim):

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

Następnie wykonaj:

:call ShowColourSchemeName()

Jeśli jest napisane „default”, zrób :colorscheme defaulti zobacz, czy kolory się zmieniają. Jeśli tak, używasz zniekształconego schematu kolorów i niewiele możesz z tym zrobić, poza ręcznym przełączaniem motywów, dopóki go nie rozpoznasz.

Zmienna g:colors_namejest udokumentowana tutaj :

:help colorscheme

Czy zamykający cudzysłów jest po "defaultbrakuje?
Benjamin W.

38

Najlepszą opcją jest użycie :cololub :colorschemew aktualnym vimie i pokazany jest rzeczywisty tekst schematu kolorów. Proszę zobaczyć,

:help colorscheme 

po więcej szczegółów.


3
Na mnie to nie działa. Mówi default. A schemat kolorów, który otrzymuję, gdy wykonuję :colo default, jest inny.
dzień

4

Jednowierszowa wersja odpowiedzi DrAl:

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

get()Funkcja spadnie z powrotem 'default', jeśli zmienna nie został jeszcze ustalony.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.