在我安装 Lion 之前,打开一个终端窗口,将光标放在提示符的末尾,如下所示:
Wed Aug 31{shirsch4@Susan-Hirschs-iMac}/projects/perl/perl/lib/Utils--><cursor>
现在,当我打开一个终端窗口时,光标会出现在提示符的中间某处,如下所示:
Wed Aug 31{shirsch4@Susan-Hirsch<cursor>-iMac}/projects/perl/perl/lib/Utils-->
有人知道我该如何纠正这个问题吗?
谢谢!
根据要求,以下是我对 PS1 的设置:
/etc/bashrc:PS1="\[\033[01;34m\]\d\[\033[00;36m\]{\u@\h}\[\033[00;35m\]\w\[\033[01;34m\]\[\033[001;34m\]-->"
答案1
导致这种情况的最常见错误是未在 PS1 中使用方括号括住非打印字符。任何非打印字符都必须括在“\[…\]”中,以告诉 bash 在测量提示符的长度时不要计算它们。
例如,我使用下面的命令~/.bashrc
使提示符变为粗体:
PS1='\['$(tput bold)'\]'"$PS1"'\['$(tput sgr0)'\]'
每个转义序列都括在方括号中。(我使用它tput
来生成代码,而不是像很多人那样对代码进行硬编码。这更具可移植性,并且使阅读和维护 shell 脚本更容易。)
但是,您发布的 PS1 似乎有正确的方括号。此外,如果我将我的 PS1 设置为与您的相同,则无法重现您报告的问题。(我使用的是 10.7.1。)
答案2
在这里找到答案:
在终端中,我必须转到“首选项”->“设置”->“高级”,然后将 xterm-color256 更改为 xterm-color!!