如果我将命令提示符设置为:
提示符的颜色将是黄色的,'$'字符后面的所有内容都将是默认终端颜色。这是我期望的。然而,如果我回忆起一个命令行并尝试编辑它,移动光标--无论是UpArrow/Ctrl-A(set -o emacs)还是ESC K(set -o vi),如果我正在尝试编辑的命令行足够长,光标不会定位在命令的开头。键入Ctrl-A(set -o emacs)或^(set -o vi)将不会将光标移动到屏幕上看到的已召回行的开头。同样,尝试将光标定位到行末(Ctrl-E或$,取决于)会导致它被放置在看起来是行末几个字符之后的位置。看起来bash被我添加到提示符中的转义字符所困扰。这只是我必须处理的事情吗?当我想要编辑已召回的行时,改变我的提示符为单色的,还是有一种方法可以让bash正确地允许使用彩色提示符编辑已召回的命令?
export PS1='\033[0;33m[\u@\h \w]\$ \033[00m'
提示符的颜色将是黄色的,'$'字符后面的所有内容都将是默认终端颜色。这是我期望的。然而,如果我回忆起一个命令行并尝试编辑它,移动光标--无论是UpArrow/Ctrl-A(set -o emacs)还是ESC K(set -o vi),如果我正在尝试编辑的命令行足够长,光标不会定位在命令的开头。键入Ctrl-A(set -o emacs)或^(set -o vi)将不会将光标移动到屏幕上看到的已召回行的开头。同样,尝试将光标定位到行末(Ctrl-E或$,取决于)会导致它被放置在看起来是行末几个字符之后的位置。看起来bash被我添加到提示符中的转义字符所困扰。这只是我必须处理的事情吗?当我想要编辑已召回的行时,改变我的提示符为单色的,还是有一种方法可以让bash正确地允许使用彩色提示符编辑已召回的命令?