ANSI序列可更改cygwin mintty / Mac iTerm / Unix xterm的前景色和背景色

时间:2019-03-30 11:38:59

标签: iterm2 xterm iterm ansi-escape mintty

我通常会在许多不同的计算机上打开许多窗口。我想让每台机器上的.bash_profile将前景色和背景色设置为特定于该机器的颜色。

我在Cygwin上使用薄荷,在Mac上使用iTerm,有时使用xterm或aterm或gnome-terminal。

如果我在程序的特定GUI中更改了前景色和背景色,它们会粘住,进入EMACS或使用ls选项进行--color都不会改变。

但是,如果我使用ANSI序列将前景色和背景色设置为24位色,则EMACS或ls尝试将其他颜色设置为其他颜色时,终端的颜色会恢复为默认的前景色和背景颜色。

是否可以通过ESCAPE SEQUENCE而不是GUI来更改默认的前景色和背景色?

1 个答案:

答案 0 :(得分:2)

有,但是只能在xterm中可靠地实现(并记录)。这就是"dynamic colors"程序使用的xtermcontrol功能:

  

可以使用 int, 0: <class 'numpy.int8'> From: -128 To: 127 int, 1: <class 'numpy.int16'> From: -32768 To: 32767 int, 2: <class 'numpy.int32'> From: -2147483648 To: 2147483647 int, 3: <class 'numpy.int64'> From: -9223372036854775808 To: 9223372036854775807 uint, 0: <class 'numpy.uint8'> From: 0 To: 255 uint, 1: <class 'numpy.uint16'> From: 0 To: 65535 uint, 2: <class 'numpy.uint32'> From: 0 To: 4294967295 uint, 3: <class 'numpy.uint64'> From: 0 To: 18446744073709551615 float, 0: <class 'numpy.float16'> float, 1: <class 'numpy.float32'> float, 2: <class 'numpy.float64'> complex, 0: <class 'numpy.complex64'> complex, 1: <class 'numpy.complex128'> others, 0: <class 'bool'> others, 1: <class 'object'> others, 2: <class 'bytes'> others, 3: <class 'str'> others, 4: <class 'numpy.void'> 设置或查询的10种颜色(如下)   到 1 0 表示为 动态颜色 ,因为相应的控制序列是设置xterm的第一个方法   动态色彩,即启动后的色彩。他们不是   与ANSI颜色相同。这些控件可能被禁用   使用 1 9 资源。至少一个参数是   预期为 Pt 。每个连续的参数更改下一个   列表中的颜色。 Ps 的值告诉起点   在列表中。根据 allowColorOps 通过名称或RGB规范指定颜色。

     

如果给出 XParseColor ,而不是名称或RGB规范,   xterm用相同形式的控制序列进行回复   可用于设置相应的动态颜色。因为   可以有一对以上的颜色编号和规格   给定一个控制序列,xterm可以产生多个   回复。

对于其他终端,他们可以识别功能的一部分,但不完整,并且不提供文档(源代码除外)— ymmv