Cómo saber qué esquema de colores usa actualmente una sesión de Vim

107

Puede configurar el esquema de color de Vim emitiendo

:colorscheme SCHEME_NAME

pero, por extraño que parezca, no puede obtener el esquema que se utiliza actualmente emitiendo

:colorscheme

ya que esto da como resultado " E471: Argument required". Tampoco veo el esquema de color que aparece en la salida de :set.

Entonces, ¿cómo puede averiguar el esquema de color actual en uso (aparte de cambiar manualmente los temas hasta que lo reconozca)?

gotgenes
fuente

Respuestas:

159

No hay una forma garantizada (ya que un esquema de color es esencialmente una carga de comandos vim que se obtienen). Sin embargo, por convención debería haber una variableg:colors_name que se establezca con el nombre del esquema de color.

Por lo tanto, intente esto:

echo g:colors_name

Si obtiene E121, es un esquema de color mal hecho o es el predeterminado.

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

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

Entonces hazlo:

:call ShowColourSchemeName()

Si dice "predeterminado", hazlo :colorscheme defaulty mira si cambian los colores. Si lo hacen, está utilizando un esquema de color mal formado y no hay mucho que pueda hacer al respecto, aparte de cambiar manualmente los temas hasta que lo reconozca.

La variable g:colors_namese documenta aquí :

:help colorscheme
DrAl
fuente
¿La comilla de cierre es doble después de "defaultfaltar?
Benjamin W.
38

La mejor opción es usar :coloo :colorschemeen vim actual y se muestra el texto del esquema de colores real. Por favor mira,

:help colorscheme 

para más detalles.

Gattoo
fuente
3
No me funciona. Dice default. Y el esquema de color que obtengo cuando ejecuto :colo defaultes otro.
DaVe
4

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

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

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

joeytwiddle
fuente