gnome-terminal 中的 VIM 不断打印奇怪的 001B 字符

gnome-terminal 中的 VIM 不断打印奇怪的 001B 字符

我在 Ubuntu 12.04 上安装了 VIM,并在 gnome-terminal 中运行终端版本。但是,最近(我不知道是什么原因导致的)在 VIM 中编辑文件时,如果按了“错误”按钮,有时会在方框中插入 001B 字符。

例如:当我在行首按下向左移动键时,它会在最左边的字符上方的框中h打印其中一个字符。OO1B

或者,当我位于文件顶部时,我按下k,它会再次打印这样的字符。

或者当按下.重复某些操作而没有重复命令时,它会打印这样的字符。

每次它都会打印当前光标位置的字符。我不知道这是什么原因造成的。

我的终端配置文件使用:

  • Source Code Pro,Medium - 字体(但系统固定宽度字体也会发生这种情况)
  • 终端字符编码设置为UTF-8(但其他编码也会发生这种情况)

看起来它001B在一个方框中打印了 a,并在同一个光标位置打印了 'g'。但它实际上并没有将其“写入”缓冲区。它们只是显示在屏幕上并一直保留在那里,直到例如我更改缓冲区中该光标位置的字符。在这种情况下,它现在再次显示正确的字符。

终端错误

有人知道这可能是什么原因造成的吗?我不知所措。

我使用 solarized 配色方案,但它与 CSApprox 一起运行,因为这是我让颜色几乎完全正常工作的唯一方法(深色背景的背景仍然关闭,但其他一切都很好)。这就是为什么我的.vimrc有以下内容:

set t_Co=256  " To make CSApprox not nag
let g:solarized_termcolors=16  "so that solarized uses my terminal presets which I've configured to the solarized colors.

我用syntastic它来突出显示语法错误。

答案1

我通过禁用文件中的所有内容并逐步重新启用找到了这些转义出现的原因.vimrc。对于那些遇到同样问题的人来说,这是由文件中的以下设置引起的.vimrc

set visualbell "Use a visual error indicator instead of a beep

删除上述行即可解决问题。

听起来很愚蠢,也很合逻辑,但是...你明白了。

相关内容