最初在苹果 stackexchange上发布了这个,但我怀疑解决方案可能是 Linux-ey,例如在我的.bashrc
.
目前,当我 SSH 到 Linux 机器上时,ls
VIM 中的输出颜色和语法着色与我本地机器上的颜色不同。显示的颜色未在我的配置文件...颜色...ANSI 颜色中定义,并且包含用于“黄色”的难看的深棕色。如何强制远程会话中的文本匹配我的 ANSI 颜色,使颜色始终保持一致?
这是我正在谈论的一个例子:左边是我本地计算机上的 VIM 会话,右边是 SSH 会话中的 VIM 会话。注意丑陋的棕色。
这是问题的一个例子ls
——颜色不同。
终端 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 coreutilsls
(通常在 Linux 上使用)是完全独立的实现。我找到了“ls 颜色不同”问题的答案。您只需要确保
ls
在两台机器上都启用了着色,然后使用此页面使本地 (Mac)LSCOLORS
变量中编码的颜色与远程 (Linux)LS_COLORS
变量中编码的颜色相同。对于与 macOS 默认值匹配的 Linux
ls
着色:将其放入您.bashrc
的 Mac 中:并把它放在你
.bashrc
的 Linux 机器上: