macos - PS1 中的什么导致我的 Terminal.app 命令卡在屏幕上?

标签 macos bash terminal

当循环输入到控制台的语句时,我偶尔会发现我输入的文本没有刷新,提示被移到了右边。

我原来的预期提示: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/

相关文章:

macos - 无法使用 webapp2/Google App Engine 加载 jinja2

带有代码折叠功能的 Mac 版 HTML IDE?

linux - 如何监控长时间运行的命令的进度?

linux - 查看文件的实时日志,仅回显符合特定条件的行

macos - Mac 终端更改 PDF 作者

swift - 使用 Swift 代码访问 OS X 上的媒体库

macos - Scons 不在 OSX 中构建简单的 D 程序

macos - 在 Mac 上安装 Homebrew 的问题

linux - 登录到另一个tty

bash - 在 bash 中有条件地将命令的输出定向到/dev/null