Ctrl+a 无法在终端中完全返回

Ctrl+a 无法在终端中完全返回

我最近更新了我的提示,看起来像

[user@User] ~/wroking/directory (git-branch)

在我的.bashrc

source ~/.local/bin/git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE="true"
PS1='\e[0;36m[${debian_chroot:+($debian_chroot)}\u@\h] \w$(__git_ps1 " (%s)")\e[m\n\e[1;36m⤷\e[m '

但是当我ctrl+a回到输入的开始处时,光标()只会像这样移动

[user@User] ~/wroking/directory (git-branch)
↳ command --option1=foo --option2=bar█

ctrl+a

[user@User] ~/wroking/directory (git-branch)
↳ command -█option1=foo --option2=bar

ctrl+k

[user@User] ~/wroking/directory (git-branch)
↳ command -█

ctrl+e

[user@User] ~/wroking/directory (git-branch)
↳ command -         █

如果我按下back-spacectrl-a什么反应也没有发生。如果我按下后也没有反应left-arrow

我总能通过清除屏幕来解决这个问题,但我发现这种行为真的很烦人,让人分心。尤其是因为我不知道发生了什么。有人知道吗?我该如何解决这个问题?

答案1

您需要将颜色代码包装\[\]

PS1='\[\e[0;36m\][${debian_chroot:+($debian_chroot)}\u@\h] \w$(__git_ps1 " (%s)")\[\e[m\]\n\[\e[1;36m\]\$\[\e[m\] '

相关内容