Estou tendo o mesmo problema que o questionador emSuporte a 256 cores para fundo vim no tmux.
Em meu terminal normal com zsh
, não tenho problemas de cor de fundo vim
, mas quando o executo dentro tmux
, tenho problemas com as cores de fundo.
Aparentemente, há um problema ao usar screen
em vez de xterm
:
Fora do Tmux: echo $TERM
resultados em screen
Inside Tmux: echo $TERM
resultados emxterm
No meu .zshrc e .tmux.conf eu configurei
TERM=screen-256color
mas não afeta nada. (eu também tentei TERM=screen
)
Como posso forçar tmux
o uso screen
?
EDIT: graças ao htor, adicionei set -g default-terminal "screen"
(também tentei set -g default-terminal "screen-256color"
) em .tmux.conf e em .zshrc export TERM=screen-256color
.
Agora eu entendo:
Fora do Tmux: echo $TERM
resulta em screen-256color
Inside Tmux: echo $TERM
resulta em echoscreen-256color
(<- parece um pouco estranho, a saída está correta?)
O que mais posso fazer para resolver o problema da cor de fundo no vim dentro do tmux?
Responder1
Como explicado aqui, desabilitarApagar cor de fundo(BCE) desmarcando a t_ut
opção do terminal (execute :set t_ut=
no Vim e pressione Control+ Lpara atualizar a exibição do terminal) para que os esquemas de cores funcionem corretamente quando o Vim for usado dentro da tela tmux e GNU.
Responder2
Para definir a variável de terminal padrão para tmux
alterar .tmux.conf
para:
set -g default-terminal "screen"
A sintaxe do shell para definir variáveis não funcionará no .tmux.conf
. No seu, .zshrc
você deve exportar o valor de TERM
para garantir que todos os shells herdem esse valor em seu ambiente:
export TERM=screen-256color