【发布时间】:2017-06-06 01:21:08
【问题描述】:
我正在自定义我的 ZSH 提示,但似乎无法使用转义序列告诉 Konsole 使用粗体文本或特定的 RGB 颜色。
我知道 ZSH 中的内置格式选项,例如 %F{000} %f,但据我所知,这些选项只允许访问默认值(红色、蓝色等)和 256 调色板。虽然%B %b(粗体的内置选项)确实有效,但它似乎仅限于一种颜色。
我希望能够使用所有 RGB 颜色为提示的特定部分着色和/或使其变为粗体。据我所知,这样的事情应该可以工作:
PS1="%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}"
这应该会给我一个像这样的粉红色提示:
HOSTNAME >:
但我得到的是:
\e[38;0;255;0;255mHOSTNAME >:\e[0m
我尝试了不同的转义序列,例如 \033 \x1b,但似乎没有任何效果。
那么,如何在 ZSH 提示符中正确使用转义序列?
具体说明:
OpenSUSE Tumbleweed KDE
Konsole --version 16.12.0(键盘:XFree 4)
ZSH --version 5.3
【问题讨论】:
-
FWIW,“所有 RGB 颜色”不是一回事;虽然调色板可能可以更改,但它仍然是一个固定的集合:xfree86.org/current/ctlseqs.html
-
那是 88-no-million 或 256 个调色板。标准 True Color 只有 24 位或约 1600 万色,并表示为值的组合。终端(无论如何都是 VT 系列)需要索引到固定的调色板表中。
-
我仍然认为这是一个公平的问题 - 请记住,通过 RGB 访问颜色(不更新调色板本身)可能是不可能的。
-
哦,可爱。以下是一些支持真彩色的终端。这超出了 VT- - deductivelabs.com/en/2016/03/using-true-color-vim-tmux ;确保 Konsole 在该列表中。
-
@user2864740 Konsole 在列表中,我已经在这里查看过:gist.github.com/XVilka/8346728
标签: shell terminal zsh zshrc konsole