Tmux está cambiando parte del fondo en vim

15

Esto solo parece suceder cuando se usa vim dentro de tmux. También estoy usando iTerm 2.

Si creo un nuevo panel tmux o cambio el tamaño de un panel tmux, inmediatamente se ve así:

fondo desordenado en vim

Y luego, la única forma de solucionarlo es desplazarse en vim, y vuelve a esto:

buen fondo en vim

¿Qué podría estar causando esto?

aharris88
fuente
Esto también sucede en estándar gnome-terminal, sin tmux.
wchargin
Consulte esta respuesta para obtener inspiración sobre cómo solucionar este problema: stackoverflow.com/a/37863269/5153834
bloodrootfc

Respuestas:

19

Puede intentar agregar lo siguiente a su .vimrc.

if &term =~ '256color'
  " disable Background Color Erase (BCE)
  set t_ut=
endif

La t_utopción (predeterminado = y) describe cómo vim maneja lo que quiere como colores de fondo en comparación con intentar usar el color de fondo actual. Este fragmento borra esa opción.

Si no, entonces podrías intentar

set ttyfast

que es una opción que maneja cómo vim redibuja las pantallas.

davidlowryduda
fuente
2
¡Configurar la opción t_ut funcionó!
aharris88
Esto no funcionó para mí. Ya configuré ttyfaste intenté borrar t_utsin ningún efecto. Mi configuración es la misma que la OP, con la excepción de que estoy usando termguicolorsdentro de un Tmux configurado para soporte de color verdadero. Vim dibuja espléndidamente dentro de iTerm, pero comienza a mostrar la misma rareza de pantalla que antes cuando corro dentro de Tmux. Avíseme si debo abrir una nueva pregunta; Pensé que llegaría aquí ya que estoy experimentando esencialmente el mismo problema.
djmoch
1

Creo que esto está relacionado, por ttyfastlo que la pantalla no se vuelve a dibujar por completo. Intenta configurarlo en:

'ttyfast' 'tf'      boolean (default off, on when 'term' is xterm, hpterm,
                    sun-cmd, screen, rxvt, dtterm or
                    iris-ansi; also on when running Vim in
                    a DOS console)
            global
            {not in Vi}
    Indicates a fast terminal connection.  More characters will be sent to
    the screen for redrawing, instead of using insert/delete line
    commands.  Improves smoothness of redrawing when there are multiple
    windows and the terminal does not support a scrolling region.
    Also enables the extra writing of characters at the end of each screen
    line for lines that wrap.  This helps when using copy/paste with the
    mouse in an xterm and other terminals.
firedev
fuente