Cómo saber qué esquema de color usa actualmente una sesión de Vim
Puede establecer el esquema de color Vim emitiendo
:colorscheme SCHEME_NAME
Pero, por extraño que parezca, no se puede obtener el esquema utilizado actualmente mediante la emisión de
:colorscheme
Ya que esto resulta en " E471: Argument required
". Tampoco veo el esquema de color listado en la salida de :set
.
Entonces, ¿cómo averiguar el esquema de color actual en uso (aparte de cambiar manualmente los temas hasta que lo reconozca)?
3 answers
No hay forma garantizada (ya que 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 establezca en el nombre de la combinación de colores.
Por lo tanto, prueba esto:
echo g:colors_name
Si obtienes 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 haz:
:call ShowColourSchemeName()
Si dice "default", haga :colorscheme default
y a ver si cambian los colores. Si lo hacen, estás usando un esquema de color mal formado y no hay mucho que puedas hacer al respecto aparte de cambiar manualmente los temas hasta que lo reconozcas.
La variable g:colors_name
está documentada aquí :
:help colorscheme
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-10 19:00:28
La mejor opción es usar :colo
o :colorscheme
en el vim actual y se muestra el texto del esquema de color real. Véase,
:help colorscheme
Para más detalles.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-07 14:22:56
Una versión de una línea de la respuesta de DrAl:
let current_scheme = get(g:, 'colors_name', 'default')
La función get()
volverá a 'default'
si la variable aún no se ha establecido.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-11 08:40:11