bash 提示符未按预期换行

bash 提示符未按预期换行

这里是:

捕获 git 分支以获取提示:

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\W\[\033[0;31m\]\$(parse_git_branch)⚡️\[\033[0;39m\] "

它没有正确地在我的终端中换行(当它应该换行到下一行时,它会在当前行上运行),并且它还在我的提示符开头插入一个随机字母字符(无法删除)(但是,这对我尝试执行的命令没有影响)。

答案1

如果您像我一样并且必须在提示中包含表情符号,这解决了我的换行问题:

PS1="\[⚡️\]"

本质上,这使得闪电不计入提示长度,更好地解释在这个askubuntu线程中

答案2

有同样的问题,没有换行。然而,绿叶表情符号出现在我的 vim 中,如下所示:

�~_~M~C

我没有使用 [ ] 来转义整个序列,而是省略了第一个:

�\[~_~M~C \]

现在,换行工作和列数也是正确的。

答案3

@Arthur2e5——你几乎已经明白了!就是那个闪电表情符号!由于某些奇怪的原因,我可以使用其他表情符号,但不能使用闪电......奇怪 - 我知道。不过,谢谢您帮助我诊断问题...它已经困扰我大约一个月了!哈哈!

相关内容