当循环输入到控制台的语句时,我偶尔会发现我输入的文本没有刷新,提示被移到了右边。
我原来的预期提示:http://cl.ly/image/04080N260L1V .
点击向上和向下箭头大约十几次后会发生什么:http://cl.ly/image/1n3S2K31340R .
如果屏幕截图不清楚,带下划线的文本(在本例中为“vim ~/.bas
”)被“添加”到提示中。我删不掉但是,如果我尽可能多地删除,清除提示后 的任何文本,然后按 Enter,我将再次看到干净的原始提示:http://cl.ly/image/2O1h1Z2y0n2I .
这是 ~/.bash_profile
包含的内容:
# Simpler bash prompt in Terminal.app
promptColor="\e[1;34m"
endColor="\e[m"
#export PS1='\e[0;36m\w$ \e[0m'
export PS1="$promptColor\w$ $endColor"
# Syntax highlighting for commands like `ls` and such
alias ls="ls -G"
# PATH ammendment to put Homebrew-installed apps in front of system-provided ones
homebrew=/usr/local/bin:/usr/local/sbin:/usr/local/share/npm/bin
export PATH=$homebrew:$PATH
我已将罪魁祸首缩小到 PS1 变量。 (你可以看到我已经尝试了几种不同的方法。)根据我所阅读的内容,我正确地使用了颜色代码。
任何帮助都会很棒。谢谢。
最佳答案
这是 a FAQ .为了让 Bash 能够正确计算提示的显示长度,任何非打印序列(例如颜色代码)都需要位于 \[...\]
序列中。
关于macos - PS1 中的什么导致我的 Terminal.app 命令卡在屏幕上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691038/