2010-03-10 8 views
87

Można ustawić kolorystyka Vim wydającJak powiedzieć który colorscheme sesja Vim obecnie używa

:colorscheme SCHEME_NAME 

ale, co dziwne, nie można uzyskać aktualnie używanego programu wydając

:colorscheme 

co daje "E471: Argument required". Nie widzę także schematu kolorów wymienionego na wyjściu z :set.

W jaki sposób wykorzystujesz bieżący schemat kolorów w użyciu (oprócz ręcznego przełączania motywów, dopóki go nie rozpoznasz)?

Odpowiedz

125

Nie ma gwarantowanej drogi (ponieważ schemat kolorów jest zasadniczo obciążeniem poleceń vim, które są pozyskiwane). Jednak zgodnie z konwencją powinna istnieć zmienna g:colors_name, która jest ustawiona na nazwę schematu kolorów.

Dlatego spróbuj tego:

echo g:colors_name 

Jeśli masz E121, to albo źle wykonane kolorystyka czy jest to wartość domyślna.

błyszczące sposobem osiągnięcia tego celu jest (dla nowszych wersji vim):

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

Następnie wykonaj:

:call ShowColourSchemeName() 

Jeśli mówi "default", zrobić :colorscheme default i sprawdzić, czy kolory zmiana. Jeśli tak, używasz zniekształconego schematu kolorów i nie można wiele z tym zrobić, poza ręcznym przełączaniem motywów, dopóki go nie rozpoznasz.

Zmienna g:colors_name jest udokumentowana here:

:help colorscheme 
+3

Fantastyczna, kompletna odpowiedź. Chciałbym móc dwukrotnie głosować w górę. Dzięki. – gotgenes

+0

Czy zamykający się podwójny cudzysłów po '' default' brakuje? –

31

Najlepszym rozwiązaniem jest użycie :colo lub :colorscheme w bieżącym vim i rzeczywisty tekst colorscheme pokazano. Więcej informacji można znaleźć pod adresem:

:help colorscheme 

.

+1

To nie działa dla mnie.Opowiada 'default' .A schemat kolorów, który otrzymuję po uruchomieniu': colo default' to jest inny. – daVe

0

Wersja jedna linia odpowiedź Dral za:

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

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

Powiązane problemy