2010-03-10 14 views
87

Usted puede configurar la combinación de colores mediante la emisión de VimCómo saber lo que Colorscheme una sesión Vim utiliza actualmente

:colorscheme SCHEME_NAME 

pero, curiosamente, no se puede obtener el esquema utilizado actualmente por la emisión de

:colorscheme 

como esto resulta en "E471: Argument required". Tampoco veo el esquema de colores enumerado en la salida :set.

Entonces, ¿cómo hacer para descubrir el esquema de color actual en uso (que no sea cambiar manualmente los temas hasta que lo reconozca)?

Respuesta

125

No hay una manera garantizada (como un esquema de color es esencialmente una carga de comandos vim que se obtienen). Sin embargo, por convención, debe haber una variable g:colors_name que se establece con el nombre del esquema de color.

Por lo tanto, intente esto:

echo g:colors_name 

Si obtiene E121, o es una combinación de colores mal hecho o que es la opción por defecto.

Una forma más brillante de hacer esto es (para las versiones recientes de vim):

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

Luego hacer:

:call ShowColourSchemeName() 

Si dice "por defecto", hacer :colorscheme default y ver si los colores cambio. Si lo hacen, estás usando un esquema de color mal formado y no hay mucho que puedas hacer aparte de cambiar manualmente los temas hasta que lo reconozcas.

La variable g:colors_name se documenta here:

:help colorscheme 
+3

Fantástico, respuesta completa. Desearía poder votar dos veces. Gracias. – gotgenes

+0

¿Faltan las comillas dobles de cierre después de '" default'? –

31

mejor opción es utilizar :colo o :colorscheme en vim actual y se muestra el texto colorscheme real. Por favor, consulte,

:help colorscheme 

para obtener más información.

+1

No me funciona, dice 'default'. Y la combinación de colores que obtengo cuando ejecuto': colo default' es otra. – daVe

0

Una versión de una línea de la respuesta de DraI:

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

La función get() caerá de nuevo a 'default' si la variable aún no se ha establecido.

Cuestiones relacionadas