最初将此发布在苹果堆栈交换,但我怀疑解决方案可能是Linux-ey,例如向我的.bashrc
.
目前,当我通过 SSH 连接到 Linux 机器时,ls
VIM 中的输出颜色和语法着色与本地机器上的颜色不同。显示的颜色未在我的配置文件...颜色...ANSI 颜色中定义,并且包括丑陋的深棕色“黄色”。如何强制远程会话中的文本与我的 ANSI 颜色相匹配,以便颜色始终保持一致?
下面是我正在讨论的示例:左边是我本地计算机上的 VIM 会话,右边是 SSH 会话中的 VIM 会话。注意那可怕的棕色。
这是ls
问题的一个例子——颜色不同。
答案1
终端 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 上使用)是完全独立的实现。
答案2
我找到了“ls 颜色不同”问题的答案。您只需要确保ls
两台机器上都启用了着色,然后使用这一页使本地 (Mac)LSCOLORS
变量中编码的颜色与远程 (Linux) 变量中编码的颜色相同LS_COLORS
。
ls
对于与macOS 默认值匹配的Linux颜色:将其放入.bashrc
Mac 上:
alias ls="ls -G"
export LSCOLORS="exfxcxdxbxegedabagacad"
并将其放入您的.bashrc
Linux 机器上:
alias ls="ls --color=always"
export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43"