【发布时间】:2010-11-11 02:34:26
【问题描述】:
我已经做了一些事情来破坏我在 OS X (10.5.7) 终端中的 Bash Shell 提示。
这是我配置的 PS1:
PS1='\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
据我所知,我的颜色命令正确转义。但是,当我在命令历史记录中上下滚动时,如果历史命令包含多行,我经常会遇到换行问题。
我将提示简化为以下内容:
PS1='\[\e[1m\]\h:\w\$ \[\e[0m\]'
PS2='> '
我仍然看到类似的东西:
localhost:~/Library/Application Support/Firefox/Profiles/knpmxpup.Defau
lt/extensions/{1A2D0EC4-75F5-4c91-89C4-3656F6E44B68}$ expocd \{1A2D0EC4-7
5F5-4c91-89C4-3656F6E 出口 PS1="\[
\e[1;32m\]\h\[\e[0m\]: cd 库/Appl
ication\支持/
我也尝试过\033 而不是\e。我只是将 PS2 包含在其中以获取信息,我没有更改安装默认值。如果我完全删除颜色代码,那么一切正常,有什么想法吗?
【问题讨论】:
-
什么是
$TERM?如果我没记错的话,Terminal.app 的终端仿真与 terminfo 数据库中的任何内容都不完全匹配,但dtterm很接近。 -
我已经在 Fedora8 上的 bash 3.2.33 上尝试过你的 PS1。即使在动态更改终端的宽度时,它也适用于长线。它在更改高度时会打印重复的行,但 Ctrl-L 可以解决此问题。可能是一个错误...
-
@ephemient 我的 $TERM 是 'xterm-color'
-
如果
TERM=dtterm仍然存在问题(可通过终端的设置在某处进行配置),那么我不知道。我接触 OS X 已经好几年了。
标签: bash colors prompt ansi-escape