Tmux vim'de arka planın bir kısmını değiştiriyor


15

Bu sadece tmux'un içinde vim kullanıldığında olur. Ayrıca iTerm 2 kullanıyorum.

Yeni bir tmux bölmesi oluşturursam veya bir tmux bölmesini yeniden boyutlandırırsam, hemen şu şekilde görünür:

vim arka planda berbat

Ve sonra düzeltmenin tek yolu vim'de dolaşmaktır ve buna geri döner:

vim iyi arka plan

Buna ne sebep olabilir?


Bu standart gnome-terminalolmadan da olur tmux.
wchargin

Bu sorunun nasıl çözüleceğine dair ilham almak için şu yanıta bakın: stackoverflow.com/a/37863269/5153834
bloodrootfc

Yanıtlar:


19

Aşağıdakileri .vimrc'nize eklemeyi deneyebilirsiniz.

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

t_utSeçeneği (varsayılan = y) o anki arka plan rengini kullanmaya kalkışan kıyasla arka plan renkleri olarak ne istediğini nasıl vim kolları açıklanır. Bu pasaj bu seçeneği temizler.

Değilse, o zaman

set ttyfast

bu da vim'in ekranları nasıl yeniden çizdiğini işleyen bir seçenektir.


2
T_ut seçeneğini ayarlamak işe yaradı!
aharris88

Bu benim için işe yaramadı. Zaten ayarladım ttyfastve t_uthiçbir etkisi olmadan temizlemeyi denedim . termguicolorsGerçek renk desteği için yapılandırılmış bir Tmux içinde kullandığım hariç, kurulumum OP ile aynı . Vim, iTerm'in içinde harika bir şekilde çekiyor, ancak Tmux'un içinde koştuğumda yukarıdaki gibi aynı ekran garipliğini göstermeye başlıyor. Yeni bir soru açmam gerekip gerekmediğini bana bildirin; Aslında aynı sorunu yaşadığım için buraya ulaşacağımı düşündüm.
djmoch

1

Bunun bununla ilgili olduğuna inanıyorum, ttyfastböylece ekran tamamen yeniden çizilmiyor. Açık olarak ayarlamayı deneyin:

'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.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.