web-dev-qa-db-fra.com

Faire fonctionner 256 couleurs dans tmux

J'ai 256 couleurs qui fonctionnent très bien dans konsole,. Je pensais que j'essaierais tmux parce que, contrairement à l'écran, il semble prendre en charge le mode vi. Cependant, je trouve que les couleurs de mon invite apparaissent et c'est probablement parce que j'ai une invite en mode 256 couleurs. Que dois-je faire pour que tmux reconnaisse les 256 couleurs?

186
xenoterracide

La FAQ Tmux déconseille explicitement de définir TERM sur autre chose que screen ou screen-256color dans votre fichier d'initialisation Shell, alors ne le faites pas!

Voici ce que j'utilise:

~$ which tmux
tmux: aliased to TERM=xterm-256color tmux

et dans mon .tmux.conf:

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

Alias ​​tmux en "tmux -2 "devrait également faire l'affaire.

271
cannedprimates

Essayez de définir 256 couleurs explicitement dans votre bashrc ou zshrc:

export TERM=xterm-256color

ou

export TERM=screen-256color

Si vous rencontrez des problèmes avec tmux qui n'efface pas correctement les couleurs d'arrière-plan lors de l'utilisation du paramètre de terme d'écran, vous pouvez essayer:

export TERM=screen-256color-bce
42
redacted

Conformément à la tmux FAQ , ajoutez ceci à votre ~/.tmux.conf:

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

Ajoutez ensuite cet alias pour tmux:

alias tmux='tmux -2'

Pas besoin de remplacer la variable TERM dans votre profil ou lors du démarrage de tmux.

Plus d'informations: http://vim.wikia.com/wiki/256_colors_setup_for_console_Vim

20
user1338062

La dernière version de ncurses est livrée avec une entrée terminfo tmux-256color (la FAQ = le mentionne). Par exemple, un avantage d'utiliser tmux-256color sur screen-256color est que l'italique est correctement rendu (l'écran ne prend pas en charge l'italique).

Donc, si vous avez le dernier package ncurses, ce qui suit fonctionnera également:

set -g default-terminal "tmux-256color"
13
Gabriel Parent

Pour les personnes disposant du dernier tmux, le .tmux.conf l'option de la réponse acceptée devrait fonctionner.

Je veux seulement ajouter que vous devrez probablement redémarrer tmux pour que la nouvelle configuration prenne effet:

tmux kill-server && tmux

Fait intéressant, cela n'est mentionné nulle part dans les réponses et m'a pris un certain temps pour comprendre.

4
mast3r

Remarque vraiment importante ici si vous utilisez un Ubuntu plus ancien que Bionic (18.04). Si vous exécutez tmux 2.1 ou plus, et vous l'êtes probablement, fondamentalement aucun conseil que vous lisez en ligne sur tmux ne fonctionnera .. pour rien.

tmux -V est un test facile pour cela. Si tu vois 2.1 ou une version antérieure, vous pouvez créer tmux à partir de la source ou ajouter un référentiel non officiel. J'ai mis à jour mon tmux avec:

Sudo add-apt-repository ppa:/hnakamur/tmux
Sudo apt update
Sudo apt upgrade

Personnellement, après la mise à niveau vers 2.6, 1) mes clés fonctionnent mieux, 2) les conseils en ligne fonctionnent réellement, 3) mes couleurs ne sont pas folles. Grande amélioration.

(Voici un lien vers la page du référentiel, btw): https://launchpad.net/~hnakamur

3
zzxyz

Je ne pouvais pas expliquer pourquoi cela fonctionne mais cela a résolu le problème pour moi.

~/.tmux.conf

set-option -g default-command bash
2
John Snow

Ceci est ma solution .... J'édite mon fichier .bashrc et j'ajoute ceci

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

J'espère que cela fonctionne dans le vôtre

1
Wira Bhakti

Je me sens reconnaissant pour toutes les autres réponses qui me donnent des indices, mais il ne semble pas nécessaire de modifier le paramètre TERM global ET ~/.tmux.conf.

J'ai fini par utiliser un alias pour définir le TERM uniquement lorsque je suis sur le point d'utiliser tmux. Ajoutez simplement ce one-liner à la fin de votre ~/.bashrc (ou tout autre fichier de configuration Shell que vous utilisez).

alias tmux='TERM=xterm-256color tmux'

C'est ça. Fait intéressant, après le lancement de tmux, le TERM serait automatiquement réinitialisé sur "écran", mais les couleurs fonctionnent quand même. Donc, je suppose que tmux serait également heureux (pour ne pas avoir gâché son environnement TERM?).

0
RayLuo

Lignes suivantes dans ~/.tmux.conf a fonctionné pour moi -

set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"

Testé sur

  • Tmux 2.7, Ubuntu 16.04,18.04
  • Tmux 2.9, CentOS
0
user3496912