在xterm中禁用/重置粗体

时间:2015-12-05 11:03:49

标签: console xterm ansi-escape

使用转义序列"\033[21m"用于重置/删除粗体/亮:

echo -e "Text\033[1mMore text\033[21mEnd"

必须返回:

文字更多文字结束

但我得到

文字更多文字结束

正如您所看到的,在xterm "\033[21m"更改为下划线并重置为粗体,我们需要使用"\033[0m",为什么会这样?

有没有办法改变这种行为? (也许用一些参数启动xterm)

1 个答案:

答案 0 :(得分:2)

根据 XTerm Control Sequences ,SGR 21被“加倍强调”:

CSI Pm m  Character Attributes (SGR).

        Ps = 2 1  -> Doubly-underlined (ISO 6429).
        Ps = 2 2  -> Normal (neither bold nor faint).
        Ps = 2 3  -> Not italicized (ISO 6429).
        Ps = 2 4  -> Not underlined.
        Ps = 2 5  -> Steady (not blinking).
        Ps = 2 7  -> Positive (not inverse).
        Ps = 2 8  -> Visible, i.e., not hidden (VT300).
        Ps = 2 9  -> Not crossed-out (ISO 6429).

也许您打算参加SGR 22。

双下划线功能在xterm patch #305中实现:

  

小型重组实施“填充”SGR功能。没有确定的应用依赖于这些;有些人觉得它们很有趣。

     

  • 用于从属性位管理绘图状态的单独位。   
  • 实施SGR代码2,3,9,21及其相应的重置。   
  • 添加配置选项--disable-wide-attrs以禁用该功能。