答案1
您必须确保提示符中的非打印字符位于转义的方括号中,否则 bash 无法正确计算提示符的大小。我想我已经为您修复了它:
PS1='\[\e[0;32m\]$PWD\n\[\e[m\]$ '
答案2
首先非常感谢@Zanna 指出正确的解决方法。
为了得到更完整的答案,我扩展了解决方案,其中包括:
a) 绿色的 cwd
b) 在新行中,git 分支(如果有)以黄色显示,如果分支很脏则显示红色星号
为了实现b,git 感知提示是必要的
最后一句是这样的~/.bashrc
export PS1='\[\e[0;32m\]$PWD\n\[\e[m\]\[\e[0;33m\]$git_branch\[\e[m\]\[$txtred\]$git_dirty\[$txtrst\]$ '
如果你在 git 分支上,提示符现在有望扩展为类似这样的内容