web-dev-qa-db-fra.com

Comment activer le support couleur dans Vim?

J'ai un beau schéma de couleurs Vim ( xoria256 ) et il semble brillant dans GVim, mais lorsque j'utilise normal vimdans Terminal, le schéma de couleurs n'est que partiellement pris en charge - par exemple, l'arrière-plan aubergine semi-transparent par défaut la couleur est utilisée. Comment faire en sorte que Terminal rende fidèlement mon schéma de couleurs Vim?

97
David Siegel

Le terminal GNOME prend en charge 256 couleurs, mais n'annonce pas son soutien. Vous pouvez remplacer la détection automatique de vim en mettant ce qui suit:

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

dans votre ~/.vimrc.

Note: Si vous utilisez l'écran GNU, il mangera avec plaisir ces codes de 256 couleurs et les convertira en 16 couleurs de base. Une meilleure solution consiste à remplacer TERM par xterm-256color avant de lancer screen/vim.

Mise à jour pour 2017: si vous avez un Vim suffisamment récent (7.4.1799 ou plus récent) et un émulateur de terminal suffisamment avancé (xterm ou gnome-terminal basé sur une version suffisamment récente de VTE), vous :set termguicolors et terminal vim peuvent utiliser les couleurs 24 bits complètes définies par votre thème vim à l'aide de highlight guifg=#rrggbb guibg=#rrggbb.

78
Marius Gedminas

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

Ensuite, définissez le type de terme dans .bashrc avec ce qui suit:

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

Si vous préférez ne disposer que de la capacité 256 couleurs pour certains programmes (peut-être en confondre d'autres), utilisez plutôt:

TERM=xterm-256color myprogram

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

Ensuite, vérifiez les capacités de couleur de votre terminal avec:

$ tput colors
256

Vous pouvez toujours avoir 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 a aussi des thèmes de couleurs bien meilleurs avec 256 couleurs. Pour vérifier si elle est compatible avec 256 couleurs:

M-x list-colors-display

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

44
Dave Jennings

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] 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 ce qui suit (cela dépend de votre thème gnome-terminal):

terminal

36
crncosta

Eh bien, vous pouvez toujours configurer Gvim pour qu’il ressemble à Vim. Vous devez juste créer un fichier ~/.gvimrc et 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 ;-)

1
wassimans

J'ai créé un profil séparé pour Vim qui utilise une couleur opaque solide à l'arrière-plan. Je viens de passer manuellement à chaque fois que j'utilise Vim. Je ne sais pas s'il existe ou non une meilleure méthode. J'aimerais penser ainsi.

0
DLH