Recently I've started having a strange issue with the "rendering" of Vim. I say rendering because it only seems to affect what's show on the screen and not the output to the actual file.
I'm running openbox and rxvt/xterm on a custom made Yocto distribution.
I log in as a normal user, start openbox, open up a terminal window (rxvt) and open a new file with vim test.txt
, all looks normal; Bottom line (statusline) shows "test.txt" [New]
on the left and 0,0-1 All
on the right. I press I
to enter insert-mode, bottom line changes to -- INSERT --
on the left and 0,1 All
on the right, all good. On the left side all the empty rows begin with a ~
except the top one where the cursor is the first character.
Now, I press a key like k
and the first character becomes a ~
and the cursor jumps one character to the right, but no k
is visible. Also, at the bottom, there are now two lines. The top line shows -- INSERT --
on the left and 1,2test.txt + (~)
on the right. The bottom line shows - VIM
on the left and nothing on the right.
If I ignore the fact of this "broken rendering" and save the file and then re-open it, the file content shows up correctly with the character k
being the first and only character. So it seems to be only a visual issue.
This happens when I run vim
as a normal user inside rxvt/xterm.
This does not happen when I run vim
as normal user in say tty3 (Ctrl+Alt+F3).
This does not happen when I run sudo vim
or su - root
and then vim
, inside rxvt in openbox.
I've checked the $TERM variable inside the different environments for a possible mismatch:
- in rxvt as normal user
echo $TERM
= rxvt - in xterm as normal user
echo $TERM
= xterm - in rxvt as root
su - root
thenecho $TERM
= rxvt - in xterm as root
su - root
thenecho $TERM
= xterm - in tty3 as normal user
echo $TERM
= linux - in tty3 as root
echo $TERM
= linux
I haven't made any conscious changes to any configurations but I did do a substantial update of the kernel and a lot of packages recently but I can't tell if this issue started at that time.
What/where else can I check for possible errors?
EDIT:
This does not happen when I run vim
inside a screen session in rxvt, as a normal user.
- in screen as normal user
echo $TERM
= screen