看不懂一行 Less_termcap

Léo*_* 준영 1 less

这个问题与线程有关

我的 .zshrc 中的行

export LESS_TERMCAP_mb=$'\E[01;31m'     # begin blinking
Run Code Online (Sandbox Code Playgroud)

以下似乎意味着

  • \$ 开始表达式
  • ' -- ' 表示括号中的所有内容都很重要
  • \E 显然说应用以下命令
  • [01 好像是指一个文件的开头
  • ; 似乎表明在前一个的开始到
  • 31m 似乎是文件的结尾

声明仍然令人困惑。某些模式必须匹配“a begin”和“blinking”。

你怎么读行?

Den*_*son 5

这是一个 ANSI 颜色序列。

  • $'...' 表示解释反斜杠转义字符(如 \e 或 \n)(请参阅 bash 手册页的“引用”部分)
  • \E 是转义字符(ASCII 27 十进制)
  • [ 只是一个方括号
  • 所以 Esc-[ 开始颜色序列
  • 01是“亮”
  • ; 分隔颜色
  • 31是“红色”
  • m 是颜色序列的结尾

序列 Esc-[ 0 m 重置为默认颜色。

尝试

 echo $'\E[01;31m'Hello$'\E[0m' Masi
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Wikipedia 文章。