Usando esquemas de color con vim y masilla

15

Estoy tratando de usar el esquema de color del desierto con VIM 7.0 en CentOS 5.6 x64 ubicado aquí:

http://hans.fugal.net/vim/colors/desert.vim

Descargué el archivo y lo guardé en mi ~/.vim/colorsdirectorio. Luego le digo a VIM que use el esquema de color emitiendo:

:colors desert

Se supone que debe verse así:

ingrese la descripción de la imagen aquí

Sin embargo entiendo esto:

ingrese la descripción de la imagen aquí

Estoy iniciando sesión en este servidor como un usuario normal (no rooto sudo) usando PuTTY 0.60 y he configurado las siguientes opciones enWindow -> Colours :

Permitir que el terminal especifique colores ANSI - marcado
Permitir que el terminal use el modo de 256 colores: marcado
La prueba en negrita es de un color diferente - marcada
Intento de usar paletas lógicas - sin marcar
Usar colores del sistema: sin marcar

Si sudoinicio sesión como roote intento lo mismo, no obtengo ningún color que no sea texto en blanco sobre fondo negro.

¿Estos esquemas están dirigidos principalmente a gVIM y PuTTY simplemente no puede mostrar estos colores?

Busqué en Google un poco y me topé con artículos como este, pero parece que no funcionan.

Kev
fuente

Respuestas:

22

Por defecto, PuTTY se presenta como xterm. La base de datos terminfo , utilizada por varios programas para determinar las capacidades del terminal, dice que solo xtermadmite ocho colores:

$ infocmp -1L xterm | grep max_colors

Esto significa que incluso si su versión de Xterm hace compatible con el modo de 256 colores, los programas no sabe nada al respecto.

  • La solución más fácil es establecer su variable de entorno $ TERM en xterm-256color.

    (En su ~ / .profile, se puede utilizar:
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi)

  • Puede decirle a PuTTY que siempre se identifique como xterm-256color, a través de Configuración → Conexión → Datos → Cadena de tipo terminal .

    Nota: Si usa el n. ° 1 o n. ° 2, y se conecta a un servidor que no tiene la entrada de terminal adecuada, todos los programas TUI se interrumpirán.

  • También puede establecer la 't_Co'opción en vim 256para anular el valor de terminfo.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • O puede editar la base de datos terminfo .

    $ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/\1#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    La entrada actualizada se mantendrá en ~/.terminfo.

usuario1686
fuente
Excelente respuesta Es mejor, pero tengo la sensación de que 256 colores no son suficientes para renderizar estos tonos pastel. ¿Alguna idea de por qué no obtengo ningún color cuando inicio sesión como root?
Kev
1
@Kev: 1) El modo de 256 colores es lo mejor que puede obtener en un emulador de terminal compatible con VT100. (Escuché que KDE Konsole tiene soporte de color verdadero, pero es muy poco estándar.) 2) Cuando inicia sesión como root, obtiene un directorio de inicio separado, y también uno separado ~/.vim/colors.
user1686
1
@Kev: Porque vi no tiene esquemas de color o resaltado de sintaxis, ni nada excepto las características básicas originales. (Vim es "Vi mejorado" después de todo.)
user1686
1
vi --versiondice que es vim, entonces, ¿es un vim reducido para que se vea como vi? Lo siento si es una pregunta tonta, han pasado años desde que trabajé con Unix con ira (cajas SCO Unix con puertos seriales) y solo había vi (vi real).
Kev
1
Algo así como. Cuando ejecuta vim como " vi", comienza en un modo de "compatibilidad", comportándose tanto como sea posible como vi. No conozco CentOS, por lo que no estoy seguro de si es solo un modo o una construcción recortada completamente separada. (Mi distro empaqueta el vi real ...)
user1686