fun*_*orn 2 macos terminal zsh colors macos-catalina
我的设置:
这是标准的 PS1 变量:PS1="%n@%m %~ %# "
当我尝试使用 ANSI 颜色或 tput 添加文本着色时出现问题。示例(在不终止颜色的情况下,无论如何它的行为都很奇怪):
PS1="%n@%m \e[38;5;197m%~ %# "
这个缩进的原因可能是什么?
当提示中的长字符串转到换行符时,会发生第二个问题 - 换行符与第一行重叠后的新字符,而我看不到后者。这种情况仅发生在第一个换行符上,第三个换行符正常出现(但位于第二位)。
我尝试使用这个答案,但解决方案无法被外壳解析:rombez@MacBook-Pro \[\e[38;5;197m\]~
ANSI 转义序列不占用终端上的任何空间,因此您必须表明zsh它们不会影响提示的长度。您可以通过将它们包裹在%{...%}.
PS1="%n@%m %{\e[38;5;197m%}%~ %# "
Run Code Online (Sandbox Code Playgroud)
zsh但是,您几乎不需要像在bash. 您可以直接使用序列指定颜色%F,该序列zsh知道在计算提示大小时如何处理。
PS1='%n@%m %F{197}%~ %# '
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2977 次 |
| 最近记录: |