web-dev-qa-db-fra.com

Pourquoi la plupart des jeux de couleurs vim ne sont-ils pas aussi beaux que la capture d'écran lorsque je les utilise?

J'ai téléchargé de nombreux schémas de couleurs vim et les ai essayés, mais beaucoup d'entre eux ne ressemblent pas à la capture d'écran officielle.

Par exemple, le propre schéma de couleurs de vim - desert devrait ressembler à ceci: desert color schema

Mais dans mon vim, de nombreuses couleurs ne s'affichent pas, par exemple l'arrière-plan. my vim color display

Mais certains schémas de couleurs fonctionnent correctement.

Pourquoi donc?

Dans: Édition-> Préférences de profil -> Couleurs, je sélectionne "Utiliser les couleurs du thème système"

45
Tanky Woo

De nombreux schémas de couleurs sont conçus pour 256 couleurs, ce qui est nettement mieux qu'un terminal 8 couleurs standard. Pour que cela fonctionne, vous avez besoin de $TERM défini sur un terminal 256 couleurs comme xterm-256color.

Si vous avez un terminal compatible 256 couleurs (comme vous le faites sur votre capture d'écran s'il s'agit de Gnome Terminal), définissez le $TERM à xterm-256color et activez 256 couleurs dans votre vimrc avec quelque chose comme:

if $TERM == "xterm-256color"
  set t_Co=256
endif

Le le wiki Vim a quelques astuces sur la configuration du bon $TERM pour différents émulateurs de terminaux. La façon la plus simple de tester cela rapidement est de faire

TERM=xterm-256color vim 

Cela ne rendra pas les schémas de couleurs conçus pour GUI vim entièrement compatibles avec le terminal Vim, mais fera fonctionner les schémas de couleurs à 256 couleurs, et ce sont une amélioration géante par rapport aux schémas de couleurs standard à 8 couleurs.

58
Michael Berkowski

Sur les systèmes * nix, le but de définir la variable d'environnement $ TERM sur une entrée terminfo qui décrit les capacités de votre terminal, y compris le nombre des couleurs prises en charge est d'annoncer ces capacités aux applications qui s'exécuteront à l'intérieur de votre terminal.

En d'autres termes, la raison pour laquelle vous définissez cette variable en premier lieu est de dire à Vim (ou mutt .. slrn .. ELinks .. etc.) .. Hey .. entre autres choses .. Je supporte 256 couleurs, saviez-vous ..?

Par conséquent, il n'y a aucun point dans l'ajout de ballonnement à votre vimrc pour tester la valeur de $ TERM afin de définir la valeur de la variable t_Co Vim. Vim est suffisamment intelligent pour récupérer le nombre de couleurs prises en charge à partir de l'entrée terminfo désignée par la variable $ TERM. C'est pourquoi vous l'avez réglé en premier lieu ..!

À cet égard, le terminal/console Vim suit simplement le modèle * nix et détermine les capacités du terminal à partir de l'entrée terminfo et automatiquement définit le contenu de la variable t_Co.

Testé et testé sur quelque chose comme 15 émulations de terminaux différentes dans un environnement GNU/linux.

19
guv'

La première capture d'écran est GVim, pas le terminal Vim. Les terminaux sont très limités en matière de prise en charge des couleurs. Et GVim peut utiliser tout l'espace RVB.

16
Cat Plus Plus

Les autres réponses ici sont bonnes; J'ai également trouvé cette page très utile pour peaufiner et comprendre le pourquoi et le comment des environnements de couleurs pour vim.

6
David Pope