终端、zsh 和 vim 中的配色方案交互

color schemes interaction in terminal, zsh, and vim

我注意到 .zshrc 中的配色方案设置不会影响终端的背景颜色 window,所以我决定为 [=23] 加载一个单独的预设配色方案=] 终端。这在 return 中改变了 .zshrc 配色方案之前的外观。 Vim 也有自己的配色方案,似乎受 OSX 终端的影响。

我很好奇是否有通用的方法来更改所有三个方的配色方案。如果不是,请帮助我了解 OSX 终端vimzsh

航站楼

Terminal.app 允许您在其首选项中更改其默认调色板。这些颜色由您的 shell 和您 运行 在其中使用标准名称(如 "blue" 或数字从 0 到 15)的程序引用。更改终端仿真器的调色板显然会改变外观您的 shell 和您 运行 在其中的程序。

ZSH

一些 zsh 主题使用 xterm 调色板中的颜色编号 (16-255)。可以更改该调色板,但这种做法并不常见,而且我还没有听说过 zsh 主题这样做(这并不意味着它在野外不存在)所以假设这些颜色相对安全跨终端将是相同的。此类主题不应受到您对终端仿真器默认 ANSI 调色板的更改的影响。

另一方面,一些 zsh 主题使用标准颜色名称,如 "green" 或 "red",它们对应于终端模拟器首选项中定义的 16 种 ANSI 颜色。由于您更改了这些颜色,因此您的 zsh 主题看起来会有所不同是合乎逻辑的。

Vim

写得好Vim 配色方案通常能够在 8/16 色环境或 256 色环境中工作。要使用的颜色代码集由终端模拟器的 Vim 决定 TERM:

TERM               colors

xterm                8
screen               8
xterm-256color     256
screen-256color    256

在 8/16 色环境中使用 256 色就绪配色方案将不起作用,因为只有 0 到 15 的数字会被正确使用。

在 256 色环境中使用 256 色就绪配色方案可能会提供一致的体验,并且不受默认 ANSI 调色板更改的影响。

无论您使用 256 色环境还是 8/16 色环境,使用 8 色现成配色方案可能会产生相同的效果。不过,此类配色方案完全取决于默认的 ANSI 颜色,因此如果您更改终端仿真器的设置,它们看起来会有所不同。

结论?

鉴于以下情况:

  • 您的 zsh 主题仅使用标准 ANSI 名称,
  • 您的 TERM 设置为 8/16 色值,
  • 您的 Vim 配色方案已准备好 8/16 色,

只有在 Terminal.app 的首选项中调整 ANSI 调色板,您才应该能够实现全面一致的外观和感觉