【问题标题】:color schemes interaction in terminal, zsh, and vim终端、zsh 和 vim 中的配色方案交互
【发布时间】:2015-04-21 19:23:37
【问题描述】:

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

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

中颜色方案的相互作用

【问题讨论】:

    标签: vim terminal zsh color-scheme


    【解决方案1】:

    终端

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

    ZSH

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

    另一方面,一些 zsh 主题使用标准颜色名称,如“绿色”或“红色”,它们对应于终端模拟器首选项中定义的 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 调色板来实现全面一致的外观和感觉。

    【讨论】:

    • 很好的答案,这大大提高了我对颜色的理解。谢谢!
    猜你喜欢
    • 2017-08-08
    • 2015-10-05
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2014-05-31
    • 2014-03-01
    • 2013-10-28
    相关资源
    最近更新 更多