vim backgroundcolor en tmux: cómo forzar a zsh a usar screen en lugar de xterm en tmux

vim backgroundcolor en tmux: cómo forzar a zsh a usar screen en lugar de xterm en tmux

Tengo el mismo problema que el autor de la pregunta enSoporte de 256 colores para fondo vim en tmux.

En mi terminal normal con zsh, no tengo problemas con el color de fondo vim, pero cuando lo ejecuto dentro tmux, tengo problemas con los colores de fondo.

Aparentemente, hay un problema al usar screenen lugar de xterm:

Fuera de Tmux: echo $TERMda como resultado screen
Dentro de Tmux: echo $TERMda como resultadoxterm

En mi .zshrc y .tmux.conf he configurado

TERM=screen-256color

pero no afecta nada. (También lo intenté TERM=screen)

¿Cómo puedo forzar tmuxel uso screen?

EDITAR: gracias a htor, agregué set -g default-terminal "screen"(también probé set -g default-terminal "screen-256color") en .tmux.conf y en .zshrc export TERM=screen-256color.

Ahora obtengo:

Outside Tmux: echo $TERMda como resultado screen-256color
Inside Tmux: echo $TERMda como resultado echoscreen-256color(<- parece un poco extraño, ¿el resultado es correcto?)

¿Qué más puedo hacer para solucionar el problema del color de fondo en vim dentro de tmux?

Respuesta1

Como se explica aquí, desactivarBorrar color de fondo(BCE) borrando la t_utopción del terminal (ejecute :set t_ut=en Vim y luego presione Control+ Lpara actualizar la pantalla del terminal) para que los esquemas de color funcionen correctamente cuando Vim se use dentro de la pantalla tmux y GNU.

Respuesta2

Para configurar la variable de terminal predeterminada para tmuxcambiarla .tmux.confa:

set -g default-terminal "screen"

La sintaxis del shell para configurar variables no funcionará en .tmux.conf. En su .zshrcdebe exportar el valor de TERMpara asegurarse de que todos los shells hereden este valor en su entorno:

export TERM=screen-256color

información relacionada