vim backgroundcolor no tmux - como forçar o zsh a usar a tela em vez do xterm no tmux

vim backgroundcolor no tmux - como forçar o zsh a usar a tela em vez do xterm no tmux

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 screenem vez de xterm:

Fora do Tmux: echo $TERMresultados em screen
Inside Tmux: echo $TERMresultados 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 tmuxo 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 $TERMresulta em screen-256color
Inside Tmux: echo $TERMresulta 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_utopçã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 tmuxalterar .tmux.confpara:

set -g default-terminal "screen"

A sintaxe do shell para definir variáveis ​​não funcionará no .tmux.conf. No seu, .zshrcvocê deve exportar o valor de TERMpara garantir que todos os shells herdem esse valor em seu ambiente:

export TERM=screen-256color

informação relacionada