我刚刚编辑了我的.bash_profile以添加git分支显示。我基于我在网上找到的版本,但是现在当我在shell中写一些东西时,在行尾,它会覆盖第一行,然后它开始换行到新行。
function proml {
case $TERM in
xterm*)
TITLEBAR='\[\033]0;\u@\h:\w\007\]'
;;
*)
TITLEBAR=""
;;
esac
PS1="${TITLEBAR}\
\w$WHITE\$(parse_git_branch)\\e[m$ "
这是parse_git_branch函数
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/[\1]/'
}
由于我对bash_profile了解不多,我不知道错误在哪里?
答案 0 :(得分:0)
这是问题吗? proml
函数>末尾缺少大括号?
function proml {
case $TERM in
xterm*)
TITLEBAR='\[\033]0;\u@\h:\w\007\]'
;;
*)
TITLEBAR=""
;;
esac
PS1="${TITLEBAR}\
\w$WHITE\$(parse_git_branch)\\e[m$ "
}
答案 1 :(得分:0)
假设$WHITE
包含用于设置文本颜色的控制代码,您需要将其括起来
\[ ... \]
阻止bash
认为这些字符会影响提示的长度。
function proml {
case $TERM in
xterm*)
TITLEBAR='\[\033]0;\u@\h:\w\007\]'
;;
*)
TITLEBAR=""
;;
esac
}
PS1="${TITLEBAR}\
\w\[$WHITE\]\$(parse_git_branch)\[\e[m\]$ "