I have to use a system that requires login via some Citrix/Windows virtualizations to eventually access a RedHat EL 6 system where I'm experiencing some really weird behavior that the admins haven't been able to fix.
vim both seem to work fine unless I'm using either inside a screen. Once inside the screen, there are serious redraw issues that occur during inserts if I move outside the initial contents displayed (i.e. moved to end or middle of file that is longer than the screen can show, or I scroll down past the bottom a line or two). When this happens, the -- INSERT -- that is drawn at the bottom of the terminal screen pushes everything up a line. If your edits are minor (i.e. not moving around and making many changes on different lines), it's usually OK, but things are redrawn incorrectly (sometimes additional feedback from vi itself scrolls the previous line up one so you end up with two -- INSERT -- lines, or other text) But, if you move around after an insert, especially if you force the contents of the window to scroll or be drawn completely, it's a total mess. Moving the cursor around to end of line or whatever doesn't follow what is shown on the screen.
To make things a bit more frustrating, this weird system can be accessed in two ways: 1 via a terminal session (through a virtualized IE browser) and 1 via a VNC desktop (through same virtualization). Unfortunately, the VNC desktop is completely unusable for command line because of refresh issues and stuck characters (random characters being repeated hundreds of times). But, despite these problems, vi does work inside screens.
I've dumped the variables from both types of vi sessions to files and they are different, but I don't know vi well enough to know which variables could be the culprit.
FWIW, both are using the same VIM 7.2.411 binary (the issue persists with /bin/vi) and screen 4.00.03 Both are on the same machine
When I submitted a helpdesk ticket, the admins installed a newer version of VIM, which actually made it a lot less severe, but it's still unusable for editing files beyond very minor changes.