从 iTerm2 SSH 连接到 Linux 机器时,颜色是不同的。我怎样才能标准化它们?

Luk*_*vis 3 ls colors vim ssh macintosh

最初将其发布在Apple stackexchange 上,但我怀疑该解决方案可能是 Linux-ey,例如向我的.bashrc.

目前,当我通过 SSH 连接到 Linux 机器时,lsVIM 中的输出颜色和语法着色与我本地机器上的颜色不同。显示的颜色未在我的 Profile...Colors...ANSI Colors 中定义,并且包括一个难看的深棕色“黄色”。如何强制远程会话中的文本与我的 ANSI 颜色相匹配,从而使颜色始终保持一致?

这是我正在谈论的一个例子:左边是我本地计算机上的 VIM 会话,右边是 SSH 会话中的 VIM 会话。注意可怕的棕色。

这是ls问题的一个例子——颜色不同。

在此处输入图片说明

der*_*ert 7

终端 vim 使用您的终端提供的颜色(您选择的 ANSI 颜色,大概-除非您的终端提供 256 色模式或可设置的颜色),但是它使用的颜色中的哪一种由 vim 配色方案控制,以及它是否相信背景是浅色还是深色。

您可以通过 来检查背景是设置为浅色还是深色:set background?。你可以用普通的方式改变它(例如,:set background=dark)。

您可以通过运行检查当前的配色方案并通过运行:colorscheme设置它:colorscheme «NAME»。至少在这里,vim 将完整的名称让您看到所有可用的名称。

找到您喜欢的设置后,您可以将它们添加到您的~/.vimrc.

编辑: ls颜色(使用 GNU coreutils)由LS_COLORS环境变量设置;请参阅info dircolors或(如果这不起作用)man dircolors。尽管这可能有点困难,因为您的 Mac OS Xls和 GNU coreutils ls(通常在 Linux 上使用)是完全独立的实现。