使用 Bash 在 OS X 的 Terminal.app 中的历史记录和 control-a 期间出现的自定义提示

Jed*_*Jed 7 bash prompt command-history macos

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

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

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

我按回车,又恢复正常了,但是让那些字符卡在那里很烦人!我在定制中搞砸了什么吗?谢谢!

Gor*_*son 9

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

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