sshing时,cygwin终端颜色会消失

时间:2016-03-11 04:59:31

标签: windows ssh colors cygwin

当我进入服务器时,我的整个cygwin终端完全变暗,颜色变得更加柔和。我认为只有当我进入一个特定的服务器时才会发生这种情况(这是我真正拥有ssh访问权限的唯一服务器,但是我尝试了另一个随机服务器在线,当我遇到另一个服务器时,我的颜色并没有消失)。

这是我终端中发生的事情的gif(忽略随机fd):http://i.imgur.com/ieazlKX.gifv

这是我的服务器配置方式的问题吗? 因为之前我曾经使用过MobaXTerm shell来使用ssh,当我在同一台服务器上时,颜色仍然很鲜明。

1 个答案:

答案 0 :(得分:0)

当您进入远程服务器时,它有自己的环境变量设置,包括LS_COLORS。通常,这将与dircolors已知的配色方案相对应。但不久前,Red Hat引入了对环境变量的更改,以消除粗体标志(表面上是为了在UTF-8控制台中获得更多字符)。如果你不打算使用颜色,这听起来像是一种改进。

许多终端使用更亮的颜色呈现粗体视频属性(而不是切换为粗体字体)。这有两个原因:

  • VGA显示对混合字体的支持有限(粗体字体和斜体不同)。
  • VGA显示支持16种颜色,ANSI定义为8,因此这是使用额外颜色的自然方式。

要查看差异,您可以尝试

ls
unset LS_COLORS
ls

关于http://pastebin.com/Gi8A5CmR的评论,远程机器正在修改终端的调色板,即在以此文本开头的行中(此处为了可读性而缩短):

^[]4;0;rgb:18/18/18^[\^[]4;1;rgb:ab/46/42^[\^[]4;2;rgb:a1/b5/6c^[\^[]4;3;rgb:f7/ca/88^[\^[]4;4;rgb:7c/af/c2^[\^[]4;5;rgb:ba/8b/af^[\^[]4;6;rgb:86/c1/b9

那些正在设置

  • 16色调色板中的每种颜色
  • 可用于粗体,下划线,反转和闪烁的颜色,
  • 加上动态前景色/背景色

这些都记录在XTerm Control Sequences中(参见 Ps = 4,10和11的描述)。最近Cygwin使用mintty,它识别相当数量的这些序列。 MoabXterm基于putty,它不识别那些序列(我记得......)。所以你看到使用Cygwin的问题。

没有“默认重置调色板”控制序列。

可以构造一个脚本来将这些设置回某个值,但是在机器上安装xtermcontrol以记录您的初始调色板可能更简单,例如,使用其--get-colorN选项,以及在另一个脚本中使用它来使xtermcontrol生成一组转义序列,只需cat到终端,重置调色板。

对于这个区域(恢复设置)没有太多的关注,因为大多数调色板操作(我见过)都是使用256色的强力脚本。现在检查我的Fedora23,如果我连接TERM=xterm-256color,我可以看到它会这样做。

如果您确保在连接到该服务器时TERM设置为"xterm",则可能无法重置您的调色板。

进一步阅读: