2012-03-23 11 views
43

He descargado muchos esquemas de color vim y los he probado, pero muchos de ellos no se parecen a la captura de pantalla oficial.¿Por qué la mayoría de los esquemas de color vim no se ven tan bien como la captura de pantalla cuando los uso?

Por ejemplo, el esquema del propio color vim - desert debería tener este aspecto: desert color schema

Pero en mi vim, muchos colores no se mostrará, por ejemplo el fondo. my vim color display

Pero algunos esquemas de color funcionan correctamente.

¿Por qué es eso?

En: Editar-> Preferencias -> Perfil Colores, selecciono los "colores de uso de tema del sistema"

+0

Yo también he encontrado este problema, y ​​estoy ejecutando la versión de 256 colores del terminal – puk

+2

La mejor respuesta que he encontrado: http://stackoverflow.com/a/15378816/357774. Básicamente, no te metas con 't_Co' en tu .vimrc, simplemente coloca esta línea en tu .bashrc:' [[-n "$ DISPLAY" && "$ TERM" = "xterm"]] && export TERM = xterm- 256color ' – Noyo

+16

@moderators: ¿Cómo es esta pregunta fuera de tema en un sitio de programación? Vim es una herramienta de productividad extremadamente importante, al igual que tmux, y cuando se utilizan juntas, la cuestión de los esquemas de colores que funcionan correctamente en el modo de texto de terminal es muy relevante. La prueba es que esta pregunta aparece en la página 1 de una búsqueda en google de "256 colores en vim". –

Respuesta

53

Muchos colores están diseñados para 256 colores, lo que es significativamente mejor que un terminal de 8 colores estándar. Para que funcione, necesita $TERM configurado en un terminal de 256 colores como xterm-256color.

Si usted tiene un terminal capaz de 256 colores (se ve como lo hace desde su pantalla si eso es Gnome Terminal), establecer el $TERM-xterm-256color y permitir a 256 colores en su vimrc con algo como:

if $TERM == "xterm-256color" 
    set t_Co=256 
endif 

El Vim wiki has some tips al configurar el $TERM correcto para diferentes emuladores de terminal. La forma más fácil de probar esto rápidamente es hacer

TERM=xterm-256color vim 

esto no hará que colorschemes diseñados para vim interfaz gráfica de usuario totalmente compatible con el terminal de Vim, pero hará que 256 colores colorschemes trabajan, y esos son una mejora gigante sobre el colores estándar de 8 colores.

+0

cambiando mi término a xterm-256color solucioné todos mis problemas cuando tuve el mismo problema que @ tanky-woo – arajek

+2

Esto me molestó ¡durante años! ¡Finalmente encontré la causa raíz! Ojalá hubiera buscado este tema antes. –

+12

Respuesta más completa: http://stackoverflow.com/a/15378816/357774. Básicamente, no te metas con 't_Co' en tu .vimrc, simplemente coloca esta línea en tu .bashrc:' [[-n "$ DISPLAY" && "$ TERM" = "xterm"]] && export TERM = xterm- 256color ' – Noyo

15

La primera pantalla es GVim, no terminal de Vim. Las terminales son muy limitadas cuando se trata de soporte de color. Y GVim puede usar espacio RGB completo.

+0

¡Buena captura! Estás 100% correcto, no me di cuenta de que cuando leí por primera vez la pregunta :) – Shane

6

Las otras respuestas aquí son buenas; También encontré que this page es muy útil para ajustar y comprender el por qué y el cómo de los entornos de color para vim.

+0

Ese enlace es realmente útil. ¡Gracias! – jacderida

20

En los sistemas * nix, el propósito de establecer la variable de entorno $ TERM a una entrada terminfo que describe las capacidades de su terminal, incluyendo el número de colores soportados es hacer publicidad de estas capacidades a las aplicaciones que se ejecutarán dentro de tu terminal.

En otras palabras, la razón por la que configura esta variable en primer lugar es para decirle a Vim (o mutt .. slrn .. ELinks .. etc.) .. Oye ... entre otras cosas .. Apoyo 256 colores , Sabías..?

Como resultado, hay sin ningún punto en la adición de hinchazón a su vimrc para probar el valor de $ TERM con el fin de establecer el valor de la variable t_Co Vim. Vim es lo suficientemente inteligente como para recoger el número de colores admitidos de la entrada terminfo señalada por la variable $ TERM. Es por eso que lo configuraste en primer lugar ...!

En este sentido, el terminal/consola Vim simplemente sigue el modelo * nix y determina las capacidades del terminal a partir de la entrada terminfo y automáticamente establece el contenido de la variable t_Co.

Probado y probado en algo así como 15 emulaciones de terminal diferentes en un entorno GNU/linux.

Cuestiones relacionadas