el fondo de tmux vim colorscheme no se muestra


12

He instalado tmux pero ahora los esquemas de colores vim del modo de texto no llenan el color de fondo correctamente. Así es como se ve con colorscheme xoria256 en el terminal normal de Ubuntu 14.10:

ingrese la descripción de la imagen aquí

Y aquí, cuando lo ejecuto exactamente en la misma terminal después de tmux:

ingrese la descripción de la imagen aquí

Como puede ver, el escritorio se muestra en cualquier lugar donde no hay texto en vim. Tengo un terminal de 256 colores.

Mi .tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

y tengo un terminal de 256 colores:

~ tput colors
256

¿Cómo hago para que tmux funcione correctamente con los esquemas de colores vim de 256 colores que funcionan bien en el terminal normal?


En mi experiencia, tmux se comporta de manera extraña cuando se inicia dentro gnome-terminal. Intente iniciar tmux con TERM=xterm tmuxy ver si se comporta de manera diferente. Si xtermno funciona, intente xterm-256coloro xterm-color.
jw013

@ jw03 Lamentablemente, ninguna de esas opciones funcionó para solucionarlo. Comportamiento idéntico Mismo comportamiento si ejecuto tmux dentro del terminador
Thomas Browne

1
En un shell dentro de tmux, ¿cuál es el valor de $TERM? Si no es así screen-256color, intente iniciar vimcomo TERM=screen-256color vim, luego asegúrese de que no haya conjuntos de scripts de inicio TERM(o, si necesita hacer eso para evitar el software defectuoso, asegúrese de que primero verifique el valor original).
Ry-

@minitech: Bingo. Tenía xterm-256color mientras que screen-256color soluciona el problema. Si respondes esto, lo aceptaré.
Thomas Browne

Respuestas:


5

Esto sucede cuando TERMno está configurado screen[-256color]en el entorno correcto de Vim, generalmente por algún script de inicio de shell. Si ese es el caso, por ejemplo, tiene un

TERM=xterm-256color

, elimínelo o asegúrese de que verifique el valor original de TERMantes de cambiarlo, p. ej.

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi


2

Comentario tardío, pero había revisado todos los hilos y no pude resolverlo hasta que hice lo siguiente. Todo lo que tenía que hacer era agregar una segunda verificación de

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

Además de la primera declaración condicional en mi .bashrcarchivo:

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

También tuve esto en .tmux.conf:

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

En mi .vimrcarchivo:

set term=screen-256color
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.