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!
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
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
...
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.
This bug is fixed in vim 7.4 patch 7.4.1942
Relevant issue: 804