OpenSuSE上xterm中vim中的浅颜色,带esckeys

OpenSuSE上xterm中vim中的浅颜色,带esckeys,vim,opensuse,Vim,Opensuse,考虑以下设置。Vim>=7.3编辑器在xterm中启动,背景为暗,Vim设置背景为暗,同步打开,最初为noesckeys。由于设置了深色背景并启用了语法高亮显示,关键字将以明亮和粗体的颜色高亮显示。现在,如果我发布:通过.vimrc或交互方式设置esckeys,并且在OpenSuSE 12.3上,所有颜色都会变淡,但与背景颜色不同=灯光,可以立即或在几次按键后设置。我无法在任何Debian系统上复制这种行为。现在不幸的是,我确实想设置ESCKEY,因为它对latexsuite很有用 这种奇怪行为

考虑以下设置。Vim>=7.3编辑器在xterm中启动,背景为暗,Vim设置背景为暗,同步打开,最初为noesckeys。由于设置了深色背景并启用了语法高亮显示,关键字将以明亮和粗体的颜色高亮显示。现在,如果我发布:通过.vimrc或交互方式设置esckeys,并且在OpenSuSE 12.3上,所有颜色都会变淡,但与背景颜色不同=灯光,可以立即或在几次按键后设置。我无法在任何Debian系统上复制这种行为。现在不幸的是,我确实想设置ESCKEY,因为它对latexsuite很有用

这种奇怪行为的原因是什么?我如何确定原因


同时使用粗体颜色和ESCKEY有什么解决方法吗?

这将是一个难题,所以让我们一起开发一个社区wiki答案

最初配色方案的起源并不完全清楚。查看:scriptnames with-noplugins可以了解它的来源:

  1: /etc/vimrc
  2: /usr/share/vim/vim73/syntax/syntax.vim
  3: /usr/share/vim/vim73/syntax/synload.vim
  4: /usr/share/vim/vim73/syntax/syncolor.vim
  5: /usr/share/vim/vim73/filetype.vim
  6: ~/.vimrc
  7: /usr/share/vim/vim73/syntax/nosyntax.vim
  8: /usr/share/vim/vim73/ftplugin.vim
  9: /usr/share/vim/vim73/indent.vim
唯一包含颜色定义的文件是$VIMRUNTIME/syntax/syncolor.vim。当&background==dark时,它包含的大多数高光定义的term=bold或term=underline且字符m=NONE。一个猜测是Vim最初使用术语属性。为什么?

使用esckeys设置,按下移动键等后,Vim重新初始化终端。具体来说,它会发出一个转义序列,清除屏幕并重新绘制所有内容。为什么?

在重新初始化期间,显然它会再次启用语法,因此再次间接调用$VIMRUNTIME/syntax/syncolor.vim strace会显示文件已被再次读取。此时,Vim显然在使用字符m属性,并清除所有解释观察结果的粗体属性


作为一种解决方法,添加具有匹配粗体属性的自定义配色方案可以避免重新初始化时出现颜色闪烁。

如果您可以重现此问题,请以注释的形式说明您的配置Vim版本OS。@helmut所说的,但作为对您的问题的编辑,而不是注释。