色を追加した後にbashコマンドをラップする方法

色を追加した後にbashコマンドをラップする方法

私の現在の.bash_profileは次のとおりです。色を追加し、PS1 bashプロファイルのgitリポジトリにあるかどうかを出力するコマンドを追加しました。

ORIG=$PS1
PS1="\[${txtund}${green}\]LOCAL\[\[${reset}\]";
PS1+="\$(prompt_git \"${white} on ${violet}\")";
PS1+="\[${reset}\]";
PS1+=" - \u\$: ";

問題は、長いコマンドを実行すると行が書き換えられることです。作成中に次の行に移動するようにコマンドを自動的にラップしたいと思います。これが起こるには、PS1を何でパッケージ化する必要がありますか?

更新 -

ORIG=$PS1
PS1="\[${txtund}${green}\]LOCAL\[\[${reset}\]";
PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\")";
PS1+="\[${reset}\]";
PS1+=" - \u\$: ";

以下のコメントに基づいて脱出回数を増やしました。パッケージはまだ機能していません。他に提案がありますか?

ベストアンサー1

ORIG=$PS1
PS1="\[${txtund}${green}\]LOCAL\[\[${reset}\]";
PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\")";
PS1+="\[${reset}\]";
PS1+="\[ - \u\$: \]";

色とテキストの最後の行を避けました。これは私の問題を解決しました。 []を使用して色とテキストをエスケープして、bashでコマンドを正しくラップできます。

おすすめ記事