我收到了以下bash提示:
# helper function to set colors
function ps1c() {
tput setaf $1;
}
PS1='$(ps1c 243)\h $(ps1c 177)\W $(ps1c 214)$ \[\e[m\]';
键入时,有时我的光标会返回到屏幕的左侧,看起来它会覆盖提示。此外,当使用向上箭头浏览我的历史记录时,事情变得奇怪,光标遍布整个地方。
我已检查过以下内容,但他们并没有真正就如何解决问题提供明确答案:
我知道问题与提示的长度有关,而不是bash所期望的,但我是一个完整的bash noob。我该怎么做才能解决这个问题?
答案 0 :(得分:3)
ps1c
的输出不应计入提示的长度,因此它也必须包含在\[...\]
中。
PS1='\[$(ps1c 243)\]\h \[$(ps1c 177)\]\W \[$(ps1c 214)\]$ \[\e[m\]'