lors de l'utilisation de vim dans tmux, je peux voir que la prise en charge de 256 couleurs est activée. avec des couleurs $ tput
Cependant, changer la couleur dans vim en tmux changera la couleur par ligne, mais pas l’arrière-plan. voir capture d'écran
Voici un extrait du fichier .vimrc, par exemple. Mon schéma de couleurs d'origine est darkisé puis, après exécution: Colourscheme molokai, vous voyez ce qui se passe.
info
dans mon ~/.tmux.conf
set -g default-terminal "screen-256color"
dans mon ~/.vimrc
set t_Co=256
dans mon ~/.bashrc
# ryan
export TERM="xterm-256color"
# ryan
alias tmux="tmux -2"
dans mon ~/.profile
# ryan 256 color support
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
export TERM='xterm-256color'
else
export TERM='xterm-color'
fi
Des idées pour obtenir un changement complet de couleurs dans vim? Est-ce que tous mes extraits des fichiers sont beaux?
D'après l'apparence de vos fichiers .bashrc et .profile, les shells de tmux ont priorité sur le paramètre "terminal par défaut" de votre conf. Tmux. Quelque chose comme ça:
TERM=screen-256color
TERM=xterm-256color
vous pouvez vérifier cela en exécutant
echo $TERM
dans un tmux frais Shell.
Tmux est relativement difficile à définir correctement. Si vous le pouvez, définissez la valeur du terme dans la configuration de gnome-terminal et non dans votre .bashrc. Sinon, entourez ces paramètres avec une vérification de TERM "screen" ou "screen-256color", et ne les réinitialisez pas dans ce cas.
Tmux veut VRAIMENT que le terminal soit réglé sur screen
ou screen-256color
Comme expliqué ici , désactivez la suppression de la couleur d'arrière-plan (BCE) en désactivant l'option de terminal t_ut
(exécutez :set t_ut=
dans Vim, puis appuyez sur Control+L pour rafraîchir l’affichage du terminal) afin que les jeux de couleurs fonctionnent correctement lorsque Vim est utilisé dans les écrans tmux et GNU.
J'ai trouvé un meilleur moyen sur ce post . Vous pouvez créer un alias de tmux en tmux -2
, ce qui obligera tmux à supposer que le shell utilise un terminal à 256 couleurs.
C'est ce qui a fonctionné pour moi dans # Ubuntu et # Mac:
# File: ~/.bashrc (Ubuntu), ~/.bash_profile (Mac)
# for VIM and TMUC
if [ "$TERM" = "xterm" ]; then
export TERM=xterm-256color
fi
alias tmux='tmux -2' # for 256color
alias tmux='tmux -u' # to get rid of unicode rendering problem
Recharger les paramètres:
$ source ~/.bashrc # Ubuntu
$ source ~/.bash_profile # Mac
Configurer .bashrc pour Mac (tel qu'il est utilisé par tmux)
# File: ~/.bashrc (Mac)
source ~/.bash_profile
Configurez l’option "default-terminal" dans ~/.tmux.conf.
# File: ~/.tmux.conf
set -g default-terminal "screen-256color" # Mac and Ubuntu
J'ai eu un problème très similaire pour gnome-terminal + tmux + vim mais il a été étendu également à un problème de combinaison de touches spécifique:. Je devais combiner quelques choses ensemble. Tout d'abord, je devais configurer mon fichier .tmux.conf dans:
# Ensure terminal starts with its own colour scheme (helps Vim/Neovim themes to not break)
set -g default-terminal "xterm-256color"
# set -g default-terminal "screen-256color" # no S-Fx keys ;-(
# and ensure the key-codes are xterm alike
set -g xterm-keys on
Puis dans .vimrc:
if $COLORTERM == 'gnome-terminal'
set t_Co=256
endif
set t_ut=
Et cela a fait le travail pour les clés et le fond.
Une solution rapide consiste à exécuter les opérations suivantes dans le terminal.
export TERM=xterm-color
Vous pouvez l'ajouter à votre ~/.bash_profile
ou à un autre profil pour qu'il soit toujours défini au début.
Juste maintenant fait face au même problème. Sur la base de la réponse de bloy et du contenu actuel de mon ~ /. Profil (en fait, c'est la même chose que winchendonsprings '), j'ai résolu mon problème comme suit:
~/.profile
:
if [[ -z $TMUX ]]; then
if [ -e /usr/share/terminfo/x/xterm+256color ]; then # may be xterm-256 depending on your distro
export TERM='xterm-256color'
else
export TERM='xterm'
fi
else
if [ -e /usr/share/terminfo/s/screen-256color ]; then
export TERM='screen-256color'
else
export TERM='screen'
fi
fi
La logique est simple: si nous ne sommes pas dans la session tmux, utilisez xterm (coloré ou non). Sinon la même chose pour l'écran.
C'est peut-être trop verbeux, mais vous avez eu l'idée.