it-swarm.dev

¿Cómo habilito el soporte a todo color en Vim?

Tengo un encantador esquema de colores de Vim ( xoria256 ) y se ve brillante en GVim, pero cuando uso vim normal en Terminal, el esquema de colores solo es parcialmente compatible, por ejemplo, el fondo de berenjena semitransparente predeterminado Se utiliza el color. ¿Cómo hago que Terminal represente fielmente mi esquema de colores Vim?

97
David Siegel

El terminal GNOME 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 tu ~/.vimrc.

Nota: si usa la pantalla GNU, se comerá esos códigos de 256 colores y los convertirá en 16 colores básicos. Una mejor solución 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), can :set termguicolors y terminal vim usarán colores completos de 24 bits según lo definido por su tema vim usando highlight guifg=#rrggbb guibg=#rrggbb.

78
Marius Gedminas

Una solución más general es instalar el término tipo "xterm-256color". En 10.04 creo que está instalado por defecto. Anteriormente necesitabas 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 confunda algunos otros), use en su lugar:

TERM=xterm-256color myprogram

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

Luego verifique las capacidades de color de su terminal con:

$ tput colors
256

Es posible que aún necesite 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 verificar si funciona con 256 colores:

M-x list-colors-display

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

44
Dave Jennings

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

export TERM="xterm-256color"

Y guárdalo. Después, reinicie su gnome-terminal. Este cambio estará disponible no solo en vim, sino también para todas sus aplicaciones de terminal.

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

#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <[email protected]>
# modified by [email protected] to fit my output needs
# modified by [email protected] 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 partir de entonces, verá algo como lo siguiente (depende de su tema gnome-terminal):

terminal

36
crncosta

Bueno, siempre puedes configurar Gvim para que se vea como Vim. Solo tiene que crear un archivo ~/.gvimrc y pegar en él 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 ;-)

1
wassimans

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

0
DLH