当我编写一个长命令并且文本行到达终端末尾时,它会在同一行的开头继续(就像“覆盖它”一样),并且如果我点击home
它并不会真正到达该行的开头。
我找到了这个问题,这个其他等等,我现在它与颜色和我希望它显示的内容有关...我很抱歉打开另一篇文章,但我尝试自己编辑该行,但我真的无法理解。你们能给我一些帮助吗?
这是我的摘录.bashrc
:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\][\u@debian]\[\033[01;34m\][\033[01;34m\]\w\]]\033[01;34m\]\$\033[00m\] '
为了澄清这一点,我希望提示是:
[username@debian][~]$
- 含义是,括号内的 username@debian
[\u@debian]
,绿色
*是的,我希望它显示“debian”,而不是通常的\h
- 工作目录也在其括号之间
[\w]
,呈蓝色 $
普通用户的- 我输入的文本以白色显示。
- 我不关心 root 用户的提示。
感谢您的帮助,再次抱歉为此打开另一篇文章......
编辑:我慢慢阅读后尝试重写它这个完整的教程。但无法使其发挥作用。现在它不会“覆盖”第一行,但在第二行上,在几个字符之后,仅覆盖第二行几个字符,然后继续正常。但对于这款新的 PS1,如果我UP
按键盘上的箭头转到之前的命令,它就会变得非常时髦。
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[[\]\u\[@debian]\]\[\033[01;34m\]\[[\]\w\[]\]\[\033[01;34m\]\$\[\033[00m\] '
如果教程没记错的话,应该是:
\[
开始一系列非打印字符。\]
结束非打印字符序列。\033[XXm
颜色,需要位于非打印字符的开头和结尾之间,因此,例如,对于蓝色 (34),它应该是:\[\033[34m\]
所以,在我看来,它现在应该有效,但事实并非如此。显然我没看对-.-
答案1
这里看起来像是一个错字:
\[\033[01;34m\][\033[01;34m\] ^
[
应该是这样\[
。
\[
...标记\]
告诉 Bash 字符串的这些部分不会影响列计数。