2009-10-02 58 views
9

视频显示问题: http://www.mentaframework.org/download/TerminalBug.movMac Terminal.app恼人的bug - 如何解决它?

当我打字的Terminal.app并达到行的结束,下一行开始在第一行的顶部,覆盖一切。然后,如果我使用删除键,一切都会消失。

我在同一个终端上做了一个ssh到不同的主机,它工作正常,所以它可能是我的shell配置的问题?

观看电影,看看会发生什么:

感谢,

-Sergio

+0

嗨塞尔吉奥。 http://superuser.com你可能会有更好的运气。 – 2009-10-02 20:52:02

+1

视频是一个断开的链接。 – 2013-11-30 16:40:38

回答

18

您需要标记您的PS1变量的转义码被设置你的颜色提示。外壳需要知道它们不可打印,然后它会正确计算您的换行。

下面就来解释的链接和一些例子:

http://www.artemfrolov.com/articles/coloured-bash-prompt

快速提示:

\[  begins a sequence of non-printing characters 
\]  ends a sequence of non-printing characters 
+0

这样做!非常感谢! – TraderJoeChicago 2009-10-02 21:46:28

+0

没问题。乐于帮助。 – 2009-10-02 21:50:36

+0

网址中断 – 2015-05-27 12:27:53

1

http://www.artemfrolov.com/articles/coloured-bash-prompt目前是空白的(如,请在Chrome /火狐/歌剧只看到空白,没有内容)。因此,研究的例子here后,我发现转换:

export PS1='\e[0;32m\[email protected]\h\e[m \D{%b %d} \t $ ' 

打破,以

export PS1='\[\e[0;32m\]\[email protected]\h\[\e[m\] \D{%b %d} \t $ ' 

似乎为我工作(作为一个额外的,具体的例子)。

另外,稍微偏离主题,但有用的(至少我参考):上面的升级有帮助的“压缩通道”并加粗绿色用户@主机提示:

export MYPS='$(echo -n "${PWD/#$HOME/~}" | awk -F "/" '"'"'{if (length($0) > 14) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF; else if (NF>3) print $1 "/" $2 "/.../" $NF; else print $1 "/.../" $NF; } else print $0;}'"'"')' 
export PS1='\[\e[1;32m\]\[email protected]\h\[\e[m\] \D{%b %d} \t $(eval "echo ${MYPS}")$ ' 

**编辑**:这个PS1任务(第二行),imo,更容易阅读:

export MYPS='$(echo -n "${PWD/#$HOME/~}" | awk -F "/" '"'"'{if (length($0) > 14) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF; else if (NF>3) print $1 "/" $2 "/.../" $NF; else print $1 "/.../" $NF; } else print $0;}'"'"')' 
export PS1='[email protected]\[$(tput bold)\]$(hostname -s)\[$(tput sgr0)\] \D{%b %d} \t $(eval "echo ${MYPS}")$ ' 
+0

为什么我会收到上述的倒计时? – 2015-04-27 21:13:39