Macos – Weird rendering artefact in vim (terminal, not MacVim)

macosrenderingterminalvim

Running Mac OS X, using either Terminal.app or iTerm2, there is a strange artefact with the character rendering that I have a hard time explaining and an even harder time understanding. I'll start with a video of my screen so that you can see and example of it in action:

Strange terminal vim rendering

From the video you can see a few ways it is weird, for example, sometimes when I hit a letter in insert mode, the character is double printed. When I go into normal mode, the artefact remains. When I re-enter insert mode, hitting backspace copies the characters on the left to the position under the cursor.

This has happened in OS X Lion, and Mountain Lion, under both Terminal.app and iTerm 2. This never happens under MacVim.

Also, I use GNU/Linux on my other machine, and have never had this happen, I am pretty sure it is strictly a Mac OS X issue, but I do not know how to fix it. For a while, I've been working around it by using MacVim most of the time, but I prefer working in a terminal.

Does anyone know what is happening here, and if so, how can I fix it?

EDIT: I tried using the macvim Vim executable, and I still get strange artefacts, but they are localized to the left side of the screen, here is an example:

enter image description here

Best Answer

Total shot in the dark: do you have the following line in your ~/.vimrc?

set list listchars=tab:\ \ ,trail:

Try commenting it out with a " at the beginning of the line and restarting vim.

I picked it up from somebody's dotfiles repo and haven't had a chance to track down why it's causing problems.

I'm running iTerm2. My $TERM is xterm. Hope that helps.

Related Question