~/.bashrc change PS1 with color 将换行符转换为回车 return 第一个换行符

~/.bashrc change PS1 with color converts newline into carriage return first newline

我将提示更改为:

    c=$(basename $CONDA_DEFAULT_ENV)
    export PS1='[\h] -\e[0;36m$c\e[0;37m (\W)  \e[0;52m'

~/.bashrc.

第一个换行实际上是回车 return 但从第二个换行开始这些实际上是换行。

我指的新行是当命令太长而不是在第二行继续,我写在提示行的开头。

我做错了什么?

谢谢!

您必须在 \[ \] 周围放置转义序列(或打印时不可见的任何其他序列),以便 Bash 正确检测提示长度。请参阅 bash 有关提示的文档。

一些事情:

export PS1='[\h] -\[\e[0;36m\]$c\[\e[0;37m\] (\W) \[\e[0;52\]m'

应该 没问题 - Bash 应该能够处理 multi-byte 序列并正确检测长度UTF-8 的东西。