Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When using vim or less in gnu screen, quitting vim or less leaves a lingering imprint

On my new Ubuntu system, I start a screen session and edit a file in vim or view it in less. After I quit, the screen doesn't redraw itself, but simply scrolls up to show a command line under all the stuff I was just viewing in vim or less.

How can I change this so that quitting vim will return me to the screen the way it was before I invoked vim?

like image 597
dan Avatar asked Feb 02 '10 00:02

dan


2 Answers

screen's altscreen (alternate screen) feature is turned off by default.

Add this to your .screenrc:

altscreen on

See: http://www.gnu.org/software/screen/manual/screen.html#Redisplay

like image 114
ZoogieZork Avatar answered Jan 26 '23 11:01

ZoogieZork


This is caused by your termcap for screen being incomplete. (This seems to be a really common problem.) Vim doesn't know the sequence for restoring the screen, so it just leaves it like it was.

You can work around this problem by setting vim's term option (or the TERM environment variable before you start vim) to a terminal that's "screen compatible", like xterm. eg:

TERM=xterm vim

or (in vim):

:set term=xterm

You can set the t_ti and t_te options in vim to the right codes. See :help xterm-screens in vim for more details.

like image 21
Laurence Gonsalves Avatar answered Jan 26 '23 11:01

Laurence Gonsalves