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

Hen*_*Cho 2 vim terminal color-scheme zsh

我注意到颜色方案设置.zshrc不会影响终端窗口的背景颜色,因此我决定为 OSX 终端加载单独的预设颜色方案。作为回报,这改变了.zshrc以前的配色方案。Vim 也有自己的颜色方案,似乎受到 OSX 终端颜色方案的影响。

我很好奇是否有任何通用方法可以更改所有三个方的配色方案。如果没有,请帮助我理解OSX 终端vimzsh中颜色方案的交互

rom*_*inl 5

终端

Terminal.app 允许您在其首选项中更改其默认调色板。这些颜色由您的 shell 和您在其中运行的程序引用,或者使用“蓝色”等标准名称,或者使用 0 到 15 之间的数字。更改终端仿真器的调色板显然会改变您的 shell 和您在其中运行的程序的外观。

中兴

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

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

维姆

编写良好的 Vim 颜色方案通常能够在 8/16 颜色环境或 256 颜色环境中工作。使用哪组颜色代码由 Vim 从终端模拟器中确定TERM

TERM               colors

xterm                8
screen               8
xterm-256color     256
screen-256color    256
Run Code Online (Sandbox Code Playgroud)

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

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

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

结论?

鉴于以下情况:

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

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