为什么我的 Bash 提示颜色使光标出现在错误的位置
Why do my Bash prompt colors make cursor appear in wrong spot
我收到以下 bash 提示:
# helper function to set colors
function ps1c() {
tput setaf ;
}
PS1='$(ps1c 243)\h $(ps1c 177)\W $(ps1c 214)$ \[\e[m\]';
打字时,有时我的光标 returns 会移到屏幕左侧,看起来像是覆盖了提示。此外,当使用向上箭头浏览我的历史记录时,事情变得很奇怪,并且光标到处都是。
我已经检查了以下内容,但它们并没有真正提供关于如何解决问题的明确答案:
- Why does my bash prompt sometimes get overwritten?
- why isn't my bash prompt properly escaping?
我知道问题与提示的长度不是 bash 所期望的有关,但我是一个完整的 bash 菜鸟。我该怎么做才能解决这个问题?
ps1c
的输出不应计入提示的长度,因此它也必须包含在 \[...\]
中。
PS1='\[$(ps1c 243)\]\h \[$(ps1c 177)\]\W \[$(ps1c 214)\]$ \[\e[m\]'
我收到以下 bash 提示:
# helper function to set colors
function ps1c() {
tput setaf ;
}
PS1='$(ps1c 243)\h $(ps1c 177)\W $(ps1c 214)$ \[\e[m\]';
打字时,有时我的光标 returns 会移到屏幕左侧,看起来像是覆盖了提示。此外,当使用向上箭头浏览我的历史记录时,事情变得很奇怪,并且光标到处都是。
我已经检查了以下内容,但它们并没有真正提供关于如何解决问题的明确答案:
- Why does my bash prompt sometimes get overwritten?
- why isn't my bash prompt properly escaping?
我知道问题与提示的长度不是 bash 所期望的有关,但我是一个完整的 bash 菜鸟。我该怎么做才能解决这个问题?
ps1c
的输出不应计入提示的长度,因此它也必须包含在 \[...\]
中。
PS1='\[$(ps1c 243)\]\h \[$(ps1c 177)\]\W \[$(ps1c 214)\]$ \[\e[m\]'