66 votes

Vim dans tmux affiche de mauvaises couleurs

J'ai installé Ubuntu 11.10. Puis j'ai téléchargé le thème Solarized pour Gnome Terminal. Depuis le terminal, mon vim semble bon : le plugin vim-powerline s'affiche correctement et la syntaxe est surlignée avec les couleurs appropriées. Mais lorsque j'exécute tmux et là vim - la coloration syntaxique n'utilise qu'une seule couleur de base et vim-powerline n'affiche aucune couleur. J'ai regardé la FAQ sur vim-powerline et la solution devrait être cette ligne dans .tmux-config :

set -g default-terminal "screen-256color"

Mais ça ne marche pas. J'ai regardé TERM et c'est le retour de 'xterm' alors j'ai essayé :

set -g default-terminal "xterm-256color"

Mais cela n'aide pas non plus.

C'est la seule ligne dans .tmux.config. Dans .vimrc, j'ai les lignes suivantes :

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

57voto

Holy Mackerel Points 905

Démarrer tmux avec le drapeau suivant résout le problème pour moi :

tmux -2

de la page de manuel de tmux :

-2 Force tmux à supposer que le terminal supporte 256 couleurs.

35voto

kiran ps Points 351

Cela a fonctionné pour moi

sur .tmux.conf

set -g default-terminal "screen-256color"

sur .vimrc

set term=screen-256color

supprimer la valeur de l'ancien terme pour .vimrc, croyez-moi, ça va marcher

31voto

Raminoid Points 463

J'ai le même problème sur Ubuntu 10.04 LTS avec Byobu 5.17 et tmux 1.5 en utilisant la dernière version de Solarized du dépôt GitHub.

J'ai pu partiellement résoudre ce problème en spécifiant $TERM en el .bashrc fichier :

export TERM="xterm-256color"

Il semble également qu'un bogue ait été signalé sur launchpad, mais qu'il n'ait pas encore été résolu : byobu n'affiche pas correctement les dircolors

5voto

Marcin Kaminski Points 4801

Le type de terminal doit être défini à screen-256color dans ~/.tmux.conf. Cela indique à tmux comment définir la variable d'environnement TERM, donc cela ne fonctionnera pas pour la session actuelle - démarrez-en une nouvelle et testez-la.

Si cela ne fonctionne toujours pas, vous pouvez lancer Vim en utilisant :

TERM=screen-256color vi

Ceci définit la variable d'environnement juste pour une exécution ponctuelle de vi.

Si cela ne fait pas afficher toutes les couleurs à vim, testez si votre terminal (je ne suis pas sûr que vous testiez avec un seul émulateur de terminal) est compilé pour supporter la palette de 256 couleurs - téléchargez et exécutez le script Perl ci-dessous depuis l'émulateur de terminal en question.

http://scie.nti.st/dist/256colors2.pl

PS. Je suppose que vous avez déjà corrigé la coquille que jordanbrock a remarquée.

2voto

Brian Smith Points 2439

Comme expliqué par Marcin Kaminski, si TERM=screen-256color vim <filename> fonctionne pour vous, il suffit d'ajouter ce qui suit à votre .bashrc

TERM=screen-256color

et à suivre dans votre .tmux.conf :

set -g default-terminal "screen-256color"

J'avais le même problème, ceci fonctionne pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X