Pour moi, il semble que personne ne sait de quoi il parle...
Comment fonctionne notre procédure d'ouverture :
- ouvrir un terminal (whichever)
- ouvrir un
tmux
- Ouvrir le site
vim
/ nvim
1 Terminal
Ouvrir un terminal (peu importe ce que vous utilisez - j'utilise st
) et écrire une commande :
$ ziga > ziga--workstation > ~
> echo $TERM
st-256color
Comme réponse, j'ai obtenu une chaîne de caractères st-256color
parce que cette chaîne est compilée comme la chaîne littérale C termname
en el st
(vérifier aquí ) . C'est similaire quel que soit le terminal que vous utilisez. Quelque part dans le binaire, il y a une chaîne littérale qui est définie comme une variable environnementale. TERM
lorsque le terminal est démarré.
Ici, vous ne pouvez rien faire d'autre que de vous souvenir de cette chaîne.
2 Tmux
Maintenant, continuons la chaîne... tmux
est ouvert après votre terminal. Dans le fichier de configuration ~/.tmux.conf
Je dois d'abord m'assurer d'identifier les variables environnementales. TERM
que mon terminal a défini. Donc j'écris comme ça :
set-option -sa terminal-overrides ",st*:Tc"
Cette ligne vérifie si la variable environnementale $TERM
commence par st
(donc st*
) et s'assure d'utiliser la couleur réelle parce que les "couleurs indexées" (8 bits = 2^8 = 256 couleurs) n'est pas suffisant pour nous. Nous voulons tmux
à utiliser "true colors" (24 bits = 2^24 = 16777215 couleurs) . Ici, nous pourrions ajouter quelques lignes supplémentaires, juste pour être sûrs que nous allons faire correspondre la valeur de TERM
. Dans mon cas, la ligne ci-dessous fonctionne également parce qu'elle recherche 256col
au milieu de TERM
:
set-option -sa terminal-overrides ",*256col*:Tc"
Et si j'utilisais xfce4-terminal
qui fixe TERM = xterm-256color
Je pourrais utiliser une ligne comme celle-ci à la place :
set-option -sa terminal-overrides ",xterm*:Tc"
Jusqu'à présent tmux
est couverte. Mais avant de continuer la chaîne, nous devons nous assurer que tmux
exportera également sa variable environnementale. TERM
.
Dans ce cas, nous pouvons le définir comme nous le souhaitons en utilisant cette ligne à l'intérieur de la balise ~/.tmux.config
:
set -g default-terminal "tmux-256color"
Assurez-vous maintenant de quitter le tmux
et tuer son serveur :
tmux kill-server
Ensuite, entrez tmux
en utilisant la commande tmux
et exécuter la commande :
$ ziga > ziga--workstation > ~
> echo $TERM
tmux-256color
Vous devriez obtenir une réponse tmux-256color
. Maintenant, nous pouvons continuer à vim
...
3 Vim
Dans notre étape finale, nous devons juste configurer vim
en ajoutant la ligne suivante dans son fichier de configuration ~/.vimrc
:
if exists('+termguicolors') && ($TERM == "st-256color" || $TERM == "tmux-256color")
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
Ceci définit correctement les séquences d'échappement &t_8f
y &t_8b
et enfin, il fixe "true colors" à l'intérieur de vim
. Mais cela ne se fait que si TERM
est :
Si vous utilisez plusieurs terminaux, vous devez les ajouter comme suit :
if exists('+termguicolors') && ($TERM == "st-256color" || $TERM == "tmux-256color" || $TERM == "xterm-256color")
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
Sinon, les couleurs ne fonctionneront pas sur toutes les bornes... Bonne chance !