答案1
tcsh 不设置任何特定的颜色 —— 它使用“反转颜色”模式,交换前景和背景,无论它们是什么。
Bash 没有 terminfo 集成,因此您需要通过外部二进制文件获取正确的转义序列...(tput 附带 ncurses)
\[$(tput smso)\]
\[$(tput rmso)\]
...或者直接对它们进行硬编码,因为它们在当前使用的 99% 的终端中都是相同的 – 反向是 CSI 7,非反向是 CSI 27:
\[\e[7m\]
\[\e[27m\]
\[
和括号\]
不是实际序列的一部分,而是告诉 bash 的行编辑代码(readline),你的 PS1 的这一部分是实际上是格式化序列,不会推进光标。提示符的任何“不可见”部分都必须以这种方式标记,否则编辑的文本将无法正确重绘。
PS1="\[\e[7m\] MBP \[\e[27m\] \w [\!] "