为什么 vim 语法在不同的终端上突出显示?

Why is vim syntax highlighting on different terminals?

我是运行 OpenSuse 42.3 的标准安装。我通过 MacOS 计算机连接到 Opensuse 机器。当我使用 vim 在终端 window 中查看文件时,语法突出显示令人愉悦。我的 OpenSuse 机器上还安装了 OpenSuse 42.3 的库存安装图像 Docker。如果我启动容器并在容器内打开一个 vim 的 python 文件,语法突出显示看起来会有所不同。我对 /usr/share/vim/vim74/syntax/python.vim 的内容进行了比较,在 OpenSuse 主机和 OpenSuse 容器上使用的语法文件之间没有差异。

左下方是我从 Mac ssh 到 OpenSuse 机器并打开 python 文件时看到的内容。右侧是我启动 docker 容器时看到的内容(仍然在我为左侧图像启动的同一终端 window 中)。

如果vim语法文件相同,语法高亮文件在终端window上的显示不应该是一样的吗?

终端中的突出显示取决于可用颜色的数量。某些 colorschemes 具有单独的颜色定义分支,具体取决于可用的数量。你可以通过

自己检查
:set t_Co?

您可能 TERM=xterm-256color 得到 256TERM=xterm 只有 16

虽然您可以强制 :set t_Co=256 并重新加载您的配色方案,但最好解决根本原因,即错误的 TERM 值。