質問

gitを使用するときにバッシュプロンプトをカスタマイズするために、〜/.localshファイルに以下を入れました。

基本的に、ターミナルに現在のブランチを表示したいと思います。 gitkツールには、緑の背景と黒い前景がある枝が表示されているので、それが私がやろうとしていることです。

私が機能しているものですが、キーボードの上の矢印を押すと、以前のコマンドをスクロールして戻すと、上書きされます。

このようなものは、[ e [0m]で色シーケンスを終わらせないときにたまたまそうでした。 GetGitbranch関数を呼び出すために、今では私に起こっています。プロンプトの長さを知らない端末と関係があると思います。

それで、質問があります...バッシュプロンプトで動的要素を正しく使用し、アップ矢印を使用したときにそれをホースに入れないにはどうすればよいですか?

function getgitbranch()
{
git branch | grep "^\*" | cut -c3-
}

function blabla()
{
PS1=""
PS1="$PS1\[\e[0;30m\]\[\e[42m\]\[\$(getgitbranch)\]\[\e[0;49m\]\[\e[0m\] "
PS1="$PS1\[\e[1;35m\][\[\e[0m\]"
PS1="$PS1\[\e[1;33m\]\w\[\e[0m\]"
PS1="$PS1\[\e[1;35m\]]\[\e[0m\]"
PS1="$PS1 \[\e[1;31m\]>\[\e[0m\] "
export PS1
}
役に立ちましたか?

解決

を削除します \[\] 周りから $(getgitbranch). 。その関数によって出力される文字は実際に画面上のスペースを占有するため、Bashにそれらを説明したいと思うようにします。使用 \[\] 言う しないでください 内部に表示される文字を数えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top