Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim background with gnu screen

I am having trouble with my colorscheme in vim. When editing a file using a vim session started in GNU screen, the text background is not rendered correctly. In a session outside screen, the entire background is gray (how it should be). For a vim window inside screen, only the background directly behind the text appears gray. The rest is black.

I have TERM set to xterm-256color in both my .cshrc and .screenrc. My .vimrc has set t_Co=256

I am using csh.

Edit: I am connecting through cygwin.

like image 345
Ravi Avatar asked Feb 04 '13 15:02

Ravi


3 Answers

To make vim, bash, and screen settings work together:

1) In .bashrc add the following:

export TERM=xterm-256color

2) In .screenrc add the following:

altscreen on
defbce on
set term=screen-256color
like image 109
bloodrootfc Avatar answered Oct 24 '22 01:10

bloodrootfc


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.

like image 44
sunaku Avatar answered Oct 24 '22 01:10

sunaku


[filling in for the OP, see the comment]

The OP found the issue:

I needed to have this set:

defbce "on"

This forces background colours to refresh.

"Change background-color-erase setting. If bce is set to “on”, all characters cleared by an erase/insert/scroll/clear operation will be displayed in the current background color. Otherwise the default background color is used."

– Ravi 19 hours ago

like image 42
sehe Avatar answered Oct 24 '22 02:10

sehe