使用 Bash 在 OS X 的 Terminal.app 中执行历史记录和控制-a 时自定义提示出现问题

使用 Bash 在 OS X 的 Terminal.app 中执行历史记录和控制-a 时自定义提示出现问题

我在 .bash_profile 中自定义了我的提示符,如下所示:

export PS1="\w \e[0;32m\$(vcprompt -f '[%n:%b]')\e[m\$ "

现在,当我按向上箭头返回历史记录,找到我想要的那个,然后按 Control-A 转到行首时,它通常会让我在第 5 个字符处停止,而不是一直转到行首。然后前几个字符就“冻结”在原地。如果我从那里向上或向下箭头,就好像这些字符是新的 $。

我按下回车键,一切恢复正常,但那些角色卡在那里,真是让人恼火!我在自定义时搞砸了什么吗?谢谢!

答案1

\[您需要用...标记提示符中的非打印部分,\]以便 bash 可以知道它们不会占用屏幕空间。尝试:

export PS1="\w \[\e[0;32m\]\$(vcprompt -f '[%n:%b]')\[\e[m\]\$ "

相关内容