Comment activer la prise en charge des couleurs dans Vim?

94

J'ai un très beau schéma de couleurs Vim ( xoria256 ) et il semble génial dans GVim, mais lorsque j'utilise le vim normal dans Terminal, le schéma de couleurs n'est que partiellement pris en charge - par exemple, la couleur d'arrière-plan d'aubergine semi-transparente par défaut est utilisée. Comment puis-je rendre Terminal fidèlement mes couleurs Vim?

    
posée David Siegel 28.07.2010 - 21:53
la source

5 réponses

74

Le terminal GNOME prend en charge 256 couleurs, mais ne publie pas son support. Vous pouvez outrepasser la détection automatique de vim en mettant les éléments suivants:

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

dans votre ~ / .vimrc.

Remarque : si vous utilisez l’écran GNU, il sera heureux de les utiliser et de les convertir en 16 couleurs de base. Une meilleure solution consiste à changer TERM en xterm-256color avant de lancer screen / vim.

Mise à jour pour 2017 : si votre version de Vim (7.4.1799 ou version ultérieure) est suffisamment récente et que votre émulateur de terminal est suffisamment avancé (xterm ou gnome-terminal basé sur une version suffisamment récente de VTE) ), vous pouvez :set termguicolors et terminal vim utiliser des couleurs complètes de 24 bits comme défini par votre thème vim en utilisant highlight guifg=#rrggbb guibg=#rrggbb .

    
réponse donnée Marius Gedminas 28.07.2010 - 22:55
la source
44

Une solution plus générale consiste à installer le terme type "xterm-256color". En 10.04, je pense qu'il est installé par défaut. Auparavant, vous deviez installer "ncurses-term" pour l'obtenir.

Ensuite, définissez le type de terme dans .bashrc avec quelque chose comme ceci:

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

Si vous préférez avoir uniquement la capacité 256 couleurs pour certains programmes (peut-être confond-il d'autres), utilisez plutôt:

TERM=xterm-256color myprogram

et peut-être définir cela comme un alias pour le programme.

Vérifiez ensuite les capacités de couleur de votre terminal avec:

$ tput colors
256

Vous avez peut-être encore besoin du paramètre vim ci-dessus pour que vim le reconnaisse. La plupart des applications reconnaîtront automatiquement les 256 couleurs (si elles peuvent les utiliser).

Emacs propose également des thèmes de couleurs bien meilleurs avec 256 couleurs. Pour vérifier s'il est compatible avec 256 couleurs:

M-x list-colors-display

256colors.pl est un script Perl qui affiche toutes les couleurs de votre terminal.

    
réponse donnée Dave Jennings 04.08.2010 - 15:10
la source
36

Incluez simplement la ligne ci-dessous dans votre $HOME/.bashrc (de préférence dans la dernière ligne du fichier):

export TERM="xterm-256color"

Et enregistrez-le. Après, redémarrez votre gnome-terminal. Cette modification sera disponible non seulement dans vim, mais pour toutes vos applications de terminal.

Pour vérifier si cela fonctionne, lancez ce petit script :

#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <[email protected]>
# modified by [email protected]ws 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")

Par la suite, vous verrez quelque chose comme ceci (dépend de votre thème gnome-terminal):

    
réponse donnée crncosta 25.11.2010 - 17:21
la source
1

Eh bien, vous pouvez toujours configurer Gvim pour qu’il ressemble à Vim. Il vous suffit de créer un fichier ~ / .gvimrc et d'y coller ces astuces de personnalisation:

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

Je ne pense pas que cela résout votre problème, mais qui sait; -)

    
réponse donnée wassimans 25.11.2010 - 16:18
la source
0

J'ai créé un profil distinct pour Vim qui utilise une couleur opaque solide en arrière-plan. Je viens de passer manuellement à chaque fois que j'utilise Vim. Vous ne savez pas s'il existe ou non une meilleure méthode. Je voudrais bien le penser.

    
réponse donnée DLH 28.07.2010 - 22:17
la source

Lire d'autres questions sur les étiquettes