我在 .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\]\$ "