Vim in tmux affiche de mauvaises couleurs

49

J'ai installé Ubuntu 11.10. Puis téléchargé le thème Solarized pour Gnome Terminal. A partir du terminal, mon vim a l'air bien: le plugin vim-powerline s'affiche correctement et la syntaxe est mise en évidence avec les couleurs appropriées. Mais lorsque j'exécute tmux et que run vim - syntax highlight utilise une seule couleur de base, 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 il retourne 'xterm' alors j'ai essayé:

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

Mais cela n'aide pas non plus.

Ceci 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
    
posée dhuCerbin 26.04.2012 - 20:36
la source

10 réponses

51

Démarrer tmux avec l’indicateur suivant corrige cela pour moi:

tmux -2

depuis la page de manuel tmux:

-2 Force tmux à supposer que le terminal prend en charge 256 couleurs.

    
réponse donnée Holy Mackerel 27.09.2013 - 05:49
la source
26

J'ai le même problème sur Ubuntu 10.04 LTS en utilisant Byobu 5.17 & amp; tmux 1.5 en utilisant le dernier Solarized du référentiel GitHub.

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

export TERM="xterm-256color"

Il semble aussi qu’il y ait un bug sur le tableau de bord, mais il n’est pas encore résolu: byobu n'affiche pas correctement les dircolors

    
réponse donnée Raminoid 08.05.2012 - 07:35
la source
20

cela a fonctionné pour moi

dans .tmux.conf

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

dans .vimrc

set term=screen-256color

supprimer l'ancienne valeur du terme pour .vimrc, croyez moi ça va marcher

    
réponse donnée kiran ps 07.12.2014 - 08:03
la source
4

Le type de terminal doit être paramétré sur screen-256color dans ~ / .tmux.conf. Il indique à tmux ce qu'il faut définir sur la variable TERM evironment, elle ne fonctionnera donc pas pour la session en cours - commencez-en une nouvelle et testez-la ensuite.

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

TERM=screen-256color vi

Ceci définit la variable d’environnement uniquement pour une exécution unique en vi.

Si cela ne permet pas à vim d’afficher toutes les couleurs, testez si votre terminal (je ne sais pas si vous testez avec un seul émulateur de terminal) est compilé pour prendre en charge la palette 256 couleurs - téléchargez et exécutez le fichier ci-dessous Script Perl de l'émulateur de terminal en question.

lien

PS. Je suppose que vous avez déjà corrigé la faute de frappe de jordanbrock.

    
réponse donnée Marcin Kaminski 16.10.2012 - 22:01
la source
2

Comme expliqué par Marcin Kaminski, si TERM = screen-256color vim fonctionne pour vous, alors il vous suffit d'ajouter des mesures à votre fichier .bashrc
TERM = écran-256color et en suivant dans votre fichier .tmux.conf set -g default-terminal "screen-256color"

J'ai eu le même problème, cela fonctionne pour moi.

    
réponse donnée user3908054 27.03.2015 - 04:16
la source
1

Il y a une faute de frappe dans la dernière ligne de votre .vimrc .

Ce devrait être colorscheme solarized

Je ne suis pas sûr que cela aide:)

    
réponse donnée jordanbrock 29.04.2012 - 03:43
la source
0

Vous rencontrez peut-être le même problème dans cette réponse.

Fondamentalement, le paramètre .tmux.conf fonctionne et TERM est défini sur screen-256color , mais tmux ouvre alors bash et appelle votre .bashrc, ce qui définit TERM sur autre chose (peut-être xterm-256color ).

La solution consiste à définir TERM dans les paramètres de votre terminal plutôt que dans .bashrc. Si ce n'est pas une option, vous pouvez vérifier TERM dans .bashrc et ne pas le changer s'il a déjà screen-256color .

    
réponse donnée jtpereyda 27.02.2014 - 02:16
la source
0

Dans le shell démarrant tmux, vérifiez que $TERM correspond à xterm-256color ou screen-256color . Voir comment modifier $ TERM :

  • Habituellement, modifier ~/.Xresources est la meilleure méthode (si elle est prise en charge)
  • Pour gnome-terminal , voir lien

Comme alternative, Holy Mackerel a déclaré, vous pouvez forcer tmux à 256color via:

$ tmux -2
    
réponse donnée Wernight 01.04.2014 - 16:11
la source
0

[Solucion] [1] cela pourrait perturber votre vision et rendre Vim désagréable à utiliser pendant une période prolongée.

Vous pouvez résoudre ce problème en exécutant: set term = screen-256color dans Vim ou en relançant Vim dans l'environnement TERM = screen-256color, comme le recommandent certains experts: lien

    
réponse donnée JEnriquePs 11.08.2014 - 16:56
la source
0

Dans votre fichier .bashrc ou .zshrc, ajoutez simplement

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

et aussi commencer par le tmux -2

    
réponse donnée Talal 15.06.2015 - 22:58
la source

Lire d'autres questions sur les étiquettes