iTerm 中的主题在 vim 中更改颜色

Themes in iTerm change colours in vim

iTerm等终端如何处理主题? 我的问题的背景是这样的; 我在 vim 中设置了一个主题,这改变了我的 js 代码中的语法突出显示。当我在 iTerm 中更改主题时,vim 中的颜色会发生变化! 我想有一个更好的主意,这样我就可以控制这些设置,而不是满足于偶然发现一个恰好有效的组合。 为什么更改终端主题会更改 vim 中的颜色?我怎样才能避免这种影响?

Vim 将使用终端仿真器设置的所谓 "ANSI" 颜色来显示 0-15 范围内的任何颜色,因此只要您操作这些 "ANSI" 颜色。这是基本原则;神志清醒,无计可施。

如果您不希望 Vim 颜色继承自终端模拟器的调色板,您需要使用 0-15 范围之外的颜色。从那里,你基本上有两个解决方案......

  1. TERM 设置为 xterm-256color 并选择专为 256 色设计的配色方案。

    正确设计的“256color”配色方案仅使用 16-255 范围内的颜色,因此它们不受终端模拟器调色板的任何更改影响。

  2. 告诉 Vim 在带有 set termguicolors 的终端中使用 "GUI" 颜色,并选择为 GUI Vim.[=16 设计的漂亮配色方案=]

    您将需要 Vim 和 iTerm 的最新版本才能使用此方法,因此它不是很便携,但这对 您[=33= 来说可能是也可能不是问题].