按home键光标停在中间

chr*_*lee 3 command-line prompt

在终端我已经改变了我的 PS1。

我认为这可能会导致我点击主页按钮出现问题。通常通过点击主页按钮,它应该返回到第一行的第一个字符

我的提示文件:https : //raw.github.com/chrisjlee/dotfiles/master/.prompt

# Setup color Variables
#############################
STARTFGCOLOR='\e[0;36m'
STARTBGCOLOR="\e[0;32m"
ENDCOLOR="\e[0m"

export PS1="\e[0;36m\n[ $STARTFGCOLOR$STARTBGCOLOR\u@\h\e[01;35m \w $STARTBGCOLOR$STARTFGCOLOR]\e[0;32m\n\e[0;35m]$ $ENDCOLOR"
Run Code Online (Sandbox Code Playgroud)

每当我重做最后一个命令(通过点击终端中的向上按钮)并点击主页按钮时,它会中途停止。然后字符将无法正确读取

有其他人有这个问题吗?

les*_*ana 5

你必须在包装逃脱方括号中像这样每一种颜色代码:\[colorcode\]

例子:

STARTFGCOLOR='\[\e[0;36m\]'
STARTBGCOLOR="\[\e[0;32m\]"
ENDCOLOR="\[\e[0m\]"
Run Code Online (Sandbox Code Playgroud)

说明:bash 必须计算提示的长度,以便在您按 home 时它可以正确放置光标。无论出于何种原因,bash 都不认为颜色代码不占用屏幕空间。您必须明确地告诉 bash 颜色代码不占用空间,方法是将它们包装在转义的方括号中。

有关更多解释,请参见此处