Tmux change une partie de l'arrière-plan dans vim

15

Cela ne semble se produire que lors de l'utilisation de vim à l'intérieur de tmux. J'utilise également iTerm 2.

Si je crée un nouveau volet tmux ou redimensionne un volet tmux, il ressemble immédiatement à ceci:

foiré fond dans vim

Et puis la seule façon de le corriger est de faire défiler dans vim, et cela revient à ceci:

bon fond à vim

Qu'est-ce qui peut causer cela?

aharris88
la source
Cela se produit également en standard gnome-terminal, sans tmux.
wchargin
Consultez cette réponse pour vous inspirer sur la manière de résoudre ce problème: stackoverflow.com/a/37863269/5153834
bloodrootfc

Réponses:

19

Vous pouvez essayer d'ajouter ce qui suit à votre .vimrc.

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

L' t_utoption (par défaut = y) décrit comment vim gère ce qu'il veut comme couleurs d'arrière-plan par rapport à la tentative d'utilisation de la couleur d'arrière-plan actuelle. Cet extrait efface cette option.

Sinon, vous pourriez essayer de

set ttyfast

qui est une option qui gère la façon dont vim redessine les écrans.

davidlowryduda
la source
2
La définition de l'option t_ut a fonctionné!
aharris88
Ça n'a pas marché pour moi. J'ai déjà réglé ttyfastet essayé d'effacer t_utsans effet. Ma configuration est la même que l'OP, à l'exception que j'utilise à l' termguicolorsintérieur d'un Tmux configuré pour une véritable prise en charge des couleurs. Vim dessine magnifiquement à l'intérieur d'iTerm, mais commence à montrer la même bizarrerie d'écran que ci-dessus lorsque je cours à l'intérieur de Tmux. Faites-moi savoir si je dois ouvrir une nouvelle question; Je pensais que j'allais tendre la main ici car je vis essentiellement le même problème.
djmoch
1

Je pense que cela est lié au ttyfastfait que l'écran n'est pas entièrement redessiné. Essayez de le régler sur:

'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
la source