Ravi
Ravi

Reputation: 133

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.

Upvotes: 13

Views: 4638

Answers (3)

bloodrootfc
bloodrootfc

Reputation: 1233

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

Upvotes: 6

sunaku
sunaku

Reputation: 2166

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.

Upvotes: 9

sehe
sehe

Reputation: 393789

[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

Upvotes: 11

Related Questions