Pas de coloration syntaxique dans tmux

16

J'ai installé tmuxdans iTerm 2. (Build 3.0.13) Lorsque j'exécute vimdans tmux, la coloration syntaxique ressemble à ceci.

pas de coloration syntaxique

Mais en dehors de tmux, la mise en évidence de la syntaxe semble correcte.

coloration syntaxique ordinaire

Mon $TERMtmux intérieur et extérieur est xterm-256color. J'ai aussi ajouté

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

dans .tmux.confet a ajouté ce

set t_Co=256
set t_AB=m
set t_AF=m
if &term =~ '256color'
    set t_ut=
endif

dans .vimrc.

J'ai également essayé la tmux -2commande et lu ces questions.

perdre vim colorscheme en mode tmux

Couleurs incorrectes avec vim dans iTerm2 utilisant Solarized

Est - ce un problème de tmux, vimou ma configuration?

ÉDITER:

Mon .vimrcdans GitHub Gist

https://gist.github.com/sohnryang/3c63397f332f2e30c7d7b2a83c3c9f52

sohnryang
la source
Qu'est - ce qui va se passer lorsque vous démarrez votre tmux avec l' -2option: tmux -2. De préférence quand il n'y a pas de sessions dans tmux.
grodzik
J'ai utilisé tmux -2, mais le problème est le même.
sohnryang
Pourriez-vous partager ensemble .vimrc?
grodzik
1
@sohnryang quelle partie de "peut-être que vous ne devriez pas" ne comprenez-vous pas?
muru
1
Essayez de suivre ces étapes . Vous avez beaucoup de plugins donc peut-être que l'un d'entre eux interfère.
Martin Tournoij

Réponses:

8

Eh bien, j'ai résolu le problème moi-même.

comme @ Carpetsmoker ♦ l'a commenté, j'ai commencé à soupçonner que mon .vimrcest un problème. J'ai lu cette question et j'ai démarré vim avec cette commande dans tmux.

vim -u NONE -U NONE -N ~/.vimrc

Après avoir démarré vim avec la commande ci-dessus, j'ai exécuté cette commande dans vim.

:syn on
:colorscheme solarized8_dark

Ceux-ci ont mis en évidence mon .vimrcdossier. Alors, j'ai commencé à déboguer mon .vimrc.

Pour faire court, set termguicolorsc'était le problème. Si j'ai exécuté vim avec set termguicolorscommenté .vimrc, je pouvais voir la coloration syntaxique corrigée dans tmux.

sohnryang
la source
J'ai eu le même problème. serait bien de termguicolorstravailler sur tmux
Filype
4

Du manuel vim: :h termguicolorsrecommande la lecture:h xterm-true-color

Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly.  [ ... these are]  only set [to some default] when `$TERM` is `xterm`.

J'utilise une condition similaire à la suivante:

if &term =~# '256color' && ( &term =~# '^screen'  || &term =~# '^tmux' )
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
    set termguicolors
endif
ixil
la source
3

Je l'ai fait fonctionner très bien avec termguicolors. C'est ce que j'ai fait 1. dans mon ~ / .bash_profile j'ai mis ceci:

export TERM=xterm-256color

et à l'intérieur de mon ~ / .vimrc j'avais ce

syntax enable
colorscheme Spacegray

set termguicolors

et cela a parfaitement fonctionné! référence

abbood
la source
: syn on: colorscheme Spacegray: set termguicolors
abbood