15

これは、私が Google で適切な答えを見つけることができなかった奇妙なものです (もちろん、私がそれに失敗する可能性は常にあります)。私のbashプロンプトで、プロンプトの一部に色を付けると、「上」を押して前のコマンドに移動すると、一定量の文字(具体的には31)を過ぎた後に行の先頭に移動できません.

私の現在のbashプロンプトはこれです:(色は.bashrcで以前に定義されています)

PS1="[\u@$cyan\h$NC \w] "

しかし、これを次のように変更すると:

PS1="[\u@\h \w] "

行の先頭に行くのを妨げなくなりました。

奇妙な部分は、視覚的には、ホームを押して行の先頭に移動する (または矢印キーを使用する) と、文字列の 11 文字が停止しますが、そこから編集すると、最初から編集されます。行の。

なぜこれが起こっているのか誰にも分かりますか?サーバー管理を行っているため、プロンプトで色を使用したいと考えています。色は、ボックスを一目で区別する方法です。

4

1 に答える 1

27

カラーコードなどの非印刷シーケンスは、で囲む必要がある\[ため\]、それらの長さはプロンプトの長さの一部としてカウントされません。

于 2012-05-15T06:02:38.287 に答える