Tmux está mudando parte do plano de fundo no vim

15

Isso só parece acontecer ao usar o vim dentro do tmux. Também estou usando o iTerm 2.

Se eu criar um novo painel tmux ou redimensionar um painel tmux, ele imediatamente se parece com o seguinte:

bagunçado fundo no vim

E então a única maneira de corrigi-lo é rolar no vim e voltar para isso:

boa experiência no vim

O que poderia estar causando isso?

aharris88
fonte
Isso acontece no padrão gnome-terminaltambém, sem tmux.
wchargin
Veja esta resposta para alguma inspiração sobre como corrigir este problema: stackoverflow.com/a/37863269/5153834
bloodrootfc

Respostas:

19

Você pode tentar adicionar o seguinte ao seu .vimrc.

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

A t_utopção (padrão = y) descreve como o vim lida com o que ele quer como cores de fundo em comparação com a tentativa de usar a cor de fundo atual. Este trecho limpa essa opção.

Caso contrário, você pode tentar

set ttyfast

que é uma opção que lida com como o vim redesenha telas.

davidlowryduda
fonte
2
Configurando a opção t_ut funcionou!
precisa saber é o seguinte
Isso não funcionou para mim. Eu já defini ttyfaste tentei limpar t_utsem efeito. Minha configuração é a mesma do OP, com a exceção que estou usando termguicolorsdentro de um Tmux configurado para suporte a cores verdadeiras. O Vim desenha esplendidamente dentro do iTerm, mas começa a mostrar a mesma estranheza da tela acima quando eu corro dentro do Tmux. Deixe-me saber se devo abrir uma nova pergunta; Eu pensei em chegar aqui, já que estou tendo basicamente o mesmo problema.
djmoch
1

Acredito que isso esteja relacionado à ttyfasttela não é totalmente redesenhada. Tente ativá-lo:

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