¿Cómo habilito el soporte de color completo en Vim?

94

Tengo un encantador esquema de colores Vim ( xoria256 ) y luce brillante en GVim, pero cuando uso vim normal en Terminal, el esquema de colores solo se admite parcialmente; por ejemplo, se utiliza el color de fondo de berenjena semitransparente predeterminado. ¿Cómo hago para que el terminal muestre fielmente mi esquema de colores de Vim?

    
pregunta David Siegel 28.07.2010 - 21:53

5 respuestas

74

GNOME Terminal admite 256 colores, pero no anuncia su compatibilidad. Puede anular la autodetección de vim poniendo lo siguiente:

if $COLORTERM == 'gnome-terminal'
  set t_Co=256
endif

en su ~ / .vimrc.

Nota : si usas la pantalla GNU, felizmente comerá esos códigos de 256 colores y los convertirá en 16 colores básicos. Una solución mejor es cambiar TERM a xterm-256color antes de iniciar screen / vim.

Actualización para 2017 : si tiene un Vim suficientemente reciente (7.4.1799 o más reciente), y un emulador de terminal suficientemente avanzado (xterm o gnome-terminal basado en una versión suficientemente reciente de VTE) ), puede :set termguicolors y terminal vim usará colores completos de 24 bits como se define en su tema vim usando highlight guifg=#rrggbb guibg=#rrggbb .

    
respondido por el Marius Gedminas 28.07.2010 - 22:55
44

Una solución más general es instalar el término tipo "xterm-256color". En 10.04 creo que está instalado por defecto. Anteriormente, necesitaba instalar "ncurses-term" para obtenerlo.

Luego configure el tipo de término en .bashrc con algo como lo siguiente:

if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then
    export TERM=xterm-256color
fi

Si prefiere tener solo la capacidad de 256 colores para ciertos programas (quizás confunde a otros), use en su lugar:

TERM=xterm-256color myprogram

y quizás establezca eso como un alias para el programa.

Luego verifique las capacidades de color de su terminal con:

$ tput colors
256

Aún puede necesitar la configuración de vim anterior para que vim lo reconozca. La mayoría de las aplicaciones reconocerán los 256 colores automáticamente (si pueden usarlos).

Emacs también tiene temas de color que son mucho mejores con 256 colores. Para comprobar si se puede ejecutar con 256 colores:

M-x list-colors-display

256colors.pl es un script Perl que mostrará todos los colores en su terminal.

    
respondido por el Dave Jennings 04.08.2010 - 15:10
36

Simplemente incluya la línea siguiente en su $HOME/.bashrc (preferiblemente en la última línea del archivo):

export TERM="xterm-256color"

Y guárdalo. Después, reinicia tu gnome-terminal. Este cambio estará disponible no solo en vim, sino en todas sus aplicaciones de terminal.

Para comprobar si funciona, ejecute este pequeño script :

#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <johannes@zellner.org>
# modified by mac@calmar.ws to fit my output needs
# modified by crncosta@carloscosta.org to fit my output needs

import sys
import os

def echo(msg):
    os.system('echo -n "' + str(msg) + '"')

def out(n):
    os.system("tput setab " + str(n) + "; echo -n " + ("\"% 4d\"" % n))
    os.system("tput setab 0")

# normal colors 1 - 16
os.system("tput setaf 16")
for n in range(8):
    out(n)
echo("\n")
for n in range(8, 16):
    out(n)

echo("\n")
echo("\n")

y=16
while y < 231:
    for z in range(0,6):
        out(y)
        y += 1

    echo("\n")


echo("\n")

for n in range(232, 256):
    out(n)
    if n == 237 or n == 243 or n == 249:
        echo("\n")

echo("\n")
os.system("tput setaf 7")
os.system("tput setab 0")

A continuación, verá algo como lo siguiente (depende de su tema gnome-terminal):

    
respondido por el crncosta 25.11.2010 - 17:21
1

Bueno, siempre puedes configurar Gvim para que se vea como Vim. Solo tiene que crear un archivo ~ / .gvimrc y pegarle estos trucos de personalización:

set guioptions-=r  " no scrollbar on the right
set guioptions-=l  " no scrollbar on the left
set guioptions-=m  " no menu
set guioptions-=T  " no toolbar

No creo que esto resuelva tu problema, pero quién sabe; -)

    
respondido por el wassimans 25.11.2010 - 16:18
0

Hice un perfil separado para Vim que usa un color sólido y opaco en el fondo. Solo cambio manualmente cuando uso Vim. No estoy seguro de si hay un mejor método o no. Me gustaría pensar que sí.

    
respondido por el DLH 28.07.2010 - 22:17

Lea otras preguntas en las etiquetas