我当前的 .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 中正确地自动换行命令。