Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

vim in tmux background color changes when paging

Tags:

vim

vi

tmux

I am using vim in 256 color mode on Solaris (connected via Putty on Windows). Everything looks great and works fine outside of tmux, but within tmux the background color changes periodically when paging/scrolling through a file.

Here is how it's supposed to look:

Here is how it appears after paging around a bit:

Thanks!

like image 946
moshen Avatar asked Jun 21 '11 15:06

moshen


3 Answers

As explained here, disable Background Color Erase (BCE) by clearing the t_ut terminal option (run :set t_ut= in Vim and then press Control+L to refresh the terminal's display) so that color schemes work properly when Vim is used inside tmux and GNU screen.

Per the above link, BCE can be set in .vimrc by adding the following

if &term =~ '256color'
    " disable Background Color Erase (BCE) so that color schemes
    " render properly when inside 256-color tmux and GNU screen.
    " see also http://snk.tuxfamily.org/log/vim-256color-bce.html
    set t_ut=
endif
like image 53
sunaku Avatar answered Nov 18 '22 01:11

sunaku


Adding an alternative solution, as I ran into this problem myself and only just solved it. I had the correct TERM value, the terminfo file was there, etc., but the background would still only be drawn behind cells that contained printable characters, or cells to the left of them.

If you switch between GUI vim and CLI vim often, you may have put something like this in your .vimrc file at some point:

if !has("gui_running")
    set term=xterm
endif

(Or really any overriding at all of the TERM variable within .vimrc)

Change the terminal override to screen-256color.

...
set term=screen-256color
...
like image 31
Andrew Avatar answered Nov 18 '22 00:11

Andrew


This looks like an issue with your term setting, or terminfo.

Make sure that your term in tmux is TERM=screen-256color and that your solaris box has the correct terminfo.

like image 8
jasonwryan Avatar answered Nov 18 '22 01:11

jasonwryan