Bash PS1 自定义提示中的长行重叠

Bash PS1 自定义提示中的长行重叠

我配置了一个漂亮的两行PS1bash 提示符,其中包含服务器名称、时间、用户名和其他有用的变量。

PS1="\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ $SERVER_NAME""$BBlue"" \w""$Color_Off  \n\[\033[0;36m\]\342\226\210\342\226\210 \d \t $ \[\033[0;39m\]"

在此处输入图片描述

完整的 Github 源代码这里

问题在于长行经常会环绕自身,这意味着新行与前一行重叠。

问题不一致:有些行换行正确,有些则不正确。

知道如何修复这个问题吗?

答案1

这是我喜欢的用于 bash 提示符的两行 PS1。

PS1

\[\e[1;32m\]\H\[\e[0m\] :: \[\e[1;30m\]\d\[\e[0m\] \@ :: \[\e[1;33m\]\w\n\[\e[1;34m\]\u $ \[\033[0m\]

所以我做了以下事情。如果这是我的颜色:

\e[1;32m

我将其改为:

\[\e[1;32m\]

本质上你需要将其包含在:

\[$mycolor\]

查看此内容回答

答案2

成立此解决方案在线,建议使用右括号来颜色变量:

改变这个:

Black='\e[0;30m'        # Black
Red='\e[0;31m'          # Red
Green='\e[0;32m'        # Green

到:

Black='\e[0;30m\]'        # Black
Red='\e[0;31m\]'          # Red
Green='\e[0;32m\]'        # Green

我有提交了变更- 希望它能按预期工作。

答案3

我对 bash PS1 中长行重叠问题的首选解决方案是\n在 PS1 提示行末尾添加一个。

例如

在此处输入图片描述

如果您想要我的所有其他内容 - 时间,用户,主机,目录和 git 分支(!),您可以使用这个(mac 或 linux):

https://unix.stackexchange.com/a/124012/10043

相关内容