Tmux ändert in vim einen Teil des Hintergrunds

15

Dies scheint nur zu passieren, wenn vim innerhalb von tmux verwendet wird. Ich benutze auch iTerm 2.

Wenn ich ein neues TMUX-Fenster erstelle oder die Größe eines TMUX-Fensters verändere, sieht es sofort so aus:

Hintergrund in vim durcheinander gebracht

Die einzige Möglichkeit, das Problem zu beheben, besteht darin, in vim herumzuscrollen.

guter hintergrund in vim

Was könnte das verursachen?

aharris88
quelle
Dies geschieht auch im Standard gnome-terminalohne tmux.
Wchargin
In dieser Antwort finden Sie Anregungen zur Behebung des Problems: stackoverflow.com/a/37863269/5153834
bloodrootfc

Antworten:

19

Sie könnten versuchen, Folgendes zu Ihrer .vimrc hinzuzufügen.

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

Die t_utOption (Standard = y) beschreibt, wie vim die gewünschten Hintergrundfarben behandelt, im Vergleich zu dem Versuch, die aktuelle Hintergrundfarbe zu verwenden. Dieses Snippet deaktiviert diese Option.

Wenn nicht, könnten Sie es versuchen

set ttyfast

Mit dieser Option wird festgelegt, wie vim Bildschirme neu zeichnet.

Davidlowryduda
quelle
2
Das Setzen der Option t_ut hat funktioniert!
Aharris88
Das hat bei mir nicht funktioniert. Ich habe bereits eingestellt ttyfastund versucht, t_utohne Wirkung zu löschen. Mein Setup ist das gleiche wie das OP, mit der Ausnahme, dass ich es termguicolorsin einem Tmux verwende, der für True Color-Unterstützung konfiguriert ist. Vim zeichnet sich in iTerm hervorragend aus, zeigt jedoch die selbe Bildschirmverrücktheit wie oben, wenn ich in Tmux laufe. Lassen Sie mich wissen, ob ich eine neue Frage eröffnen soll. Ich dachte, ich würde mich hier melden, da ich im Wesentlichen das gleiche Problem habe.
Djmoch
1

Ich glaube, das hängt damit zusammen, ttyfastdass der Bildschirm nicht vollständig neu gezeichnet wird. Versuchen Sie es auf:

'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
quelle