Tmux sta cambiando parte dello sfondo in vim


15

Questo sembra accadere solo quando si utilizza vim all'interno di tmux. Sto anche usando iTerm 2.

Se creo un nuovo riquadro di tmux o ridimensiono un riquadro di tmux, è immediatamente simile al seguente:

incasinato sfondo in vim

E quindi l'unico modo per risolverlo è scorrere in vim, e torna a questo:

buon background in vim

Che cosa potrebbe causare questo?


Questo succede anche nello standard gnome-terminal, senza tmux.
mercoledì

Vedi questa risposta per qualche ispirazione su come risolvere questo problema: stackoverflow.com/a/37863269/5153834
bloodrootfc

Risposte:


19

Potresti provare ad aggiungere quanto segue al tuo .vimrc.

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

L' t_utopzione (default = y) descrive come vim gestisce ciò che vuole come colori di sfondo rispetto al tentativo di usare il colore di sfondo corrente. Questo frammento cancella questa opzione.

In caso contrario, potresti provare a farlo

set ttyfast

che è un'opzione che gestisce il modo in cui vim ridisegna le schermate.


2
L'impostazione dell'opzione t_ut ha funzionato!
aharris88,

Questo non ha funzionato per me. Ho già impostato ttyfaste provato a cancellare t_utsenza alcun effetto. La mia configurazione è la stessa dell'OP, con l'eccezione che sto usando termguicolorsall'interno di un Tmux configurato per il supporto del vero colore. Vim disegna magnificamente dentro iTerm, ma inizia a mostrare la stessa stranezza dello schermo di cui sopra quando corro dentro Tmux. Fammi sapere se dovrei aprire una nuova domanda; Ho pensato di raggiungere qui poiché sto riscontrando essenzialmente lo stesso problema.
djmoch,

1

Credo che ciò sia correlato, ttyfastquindi lo schermo non è completamente ridisegnato. Prova a impostarlo su on:

'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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.