vim 中奇怪的渲染伪影(终端,不是 MacVim)

vim 中奇怪的渲染伪影(终端,不是 MacVim)

运行 Mac OS X,使用 Terminal.app 或 iTerm2,字符渲染时会出现奇怪的现象,我很难解释,甚至很难理解。我将从我的屏幕视频开始,以便您可以看到它的实际示例:

奇怪的终端 vim 渲染

从视频中你可以看到一些奇怪的情况,例如,有时当我在插入模式下按下一个字母时,该字符会被打印两次。当我进入正常模式时,这种现象仍然存在。当我重新进入插入模式时,按下退格键会将左侧的字符复制到光标下的位置。

在 OS X Lion 和 Mountain Lion 的 Terminal.app 和 iTerm 2 下都发生过这种情况。在 MacVim 下从未发生过这种情况。

另外,我在另一台机器上使用 GNU/Linux,从未遇到过这种情况,我很确定这完全是 Mac OS X 的问题,但我不知道如何修复它。有一段时间,我大部分时间都在使用 MacVim 来解决这个问题,但我更喜欢在终端上工作。

有人知道这里发生了什么吗?如果知道,我该如何解决?

编辑:我尝试使用 macvim Vim 可执行文件,但仍然出现奇怪的现象,但它们集中在屏幕的左侧,以下是示例:

在此处输入图片描述

答案1

完全是瞎猜:你的 ~/.vimrc 中是否有以下行?

set list listchars=tab:\ \ ,trail:

"尝试在行首用 a 将其注释掉,然后重新启动 vim。

我从某人的 dotfiles repo 中找到了这个,但还没有机会查明它为什么会导致问题。

我正在运行 iTerm2。我的$TERMxterm。希望有帮助。

答案2

这可能与使用以下函数将 Git 分支放入状态行有关的〜/ .vimrc

system("git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* //'")`

相关内容