2012-05-15 17 views
13

これは私がGoogleでうまく答えられないという奇妙なものです(もちろん、私はそれだけで失敗する可能性が常にあります)。私のbashプロンプトで、プロンプトの一部に色を付けると、前のコマンドに行くために「上」を押すと、一定の文字数(特に31)を過ぎた後に行の先頭に移動することはできません。 。Bashのプロンプト履歴の問題

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

PS1="[\[email protected]$cyan\h$NC \w] " 

をしかし、私はこのように変更した場合:

それはもはや行くから私を防ぎ
PS1="[\[email protected]\h \w] " 

行の先頭に移動します。

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

これはなぜ起こっているのでしょうか?私はサーバー管理を行うときに私のプロンプトで色を使いたいと思います。色はボックスを一目で区別する方法です。

答えて

25

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

+1

[例](https://github.com/l0b0/tilde/blob/9161937d6173e65e81de145bbc7edbbb074e99e5/.bashrc#L92) – l0b0

+0

これはまさにそれでした、ありがとう! –

+0

私は数ヶ月間この厄介な問題を抱えていました。ありがとうございました! +1 – jweyrich

関連する問題