2017-01-20 28 views
5

ZSHプロンプトをカスタマイズする途中ですが、Konsoleにボールドテキストや特定のRGBカラーを使用するようにエスケープシーケンスを使用できないようです。トゥルーカラーまたは太字のZSHプロンプトでエスケープシーケンスを使用するにはどうすればよいですか?

%F{000} %fのようにZSHの組み込みオプションについて知っていますが、私が知る限り、これらのオプションはデフォルト(赤、青など)と256色のパレットにのみアクセスできます。 %B %b、boldの組み込みオプションは機能しますが、1色に限られているようです。

私ができることをしたいのは、プロンプトの特定のセクションに、すべてのRGBカラーを使用して色付けしたり、太字にしたりすることです。私が見つけることができるものから、このような何かが動作するはずです:

PS1="%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}" 

私にこのようなピンク色のプロンプト与える必要があること:

HOSTNAME >:     

をしかし、私が得ることはこれです:

\e[38;0;255;0;255mHOSTNAME >:\e[0m 

私は\033\x1bのような異なるエスケープシーケンスを試しましたが、何も動作していないようです。

ZSHプロンプトでエスケープシーケンスを正しく使用するにはどうすればよいですか?



細目:

openSUSEのタンブルウィードKDE

konsoleの--version 16.12.0(キーボード:はXFree 4)

ZSH --version 5.3

+0

FWIWでは、「すべてのRGBカラー」は問題ではありません。 paleteはまだ変更可能かもしれませんが、それはまだ固定されています:http://www.xfree86.org/current/ctlseqs.html – user2864740

+0

これは、8800万または256色のパレットです。標準[True Color](https://en.wikipedia.org/wiki/Color_depth#True_color_.2824-bit.29)は、わずか24ビットまたは1600万色であり、値の構成として表現されています。端末(VTファミリのいずれか)は、固定カラーパレットテーブルへのインデックス付けを必要とします。 – user2864740

+0

私はまだそれは公正な問題だと思う - 念頭に置いて、RGBによる色へのアクセス(パレット自体を更新せずに)はおそらく不可能であることに留意してください。 – user2864740

答えて

1

zshが正しく評価するように文字列を変更する必要があります。

変更してみてください:

PS1="%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}"

へ:

PS1=$'%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}'

先頭に追加$

とともに"'への引用符からの変化は、よりためhttp://zsh.sourceforge.net/Guide/zshguide05.htmlを参照してくださいお知らせfoを置換する。

関連する問題