答案 0 :(得分:2)
根据我们的讨论,您应该编辑~/.bash_profile
并替换以下行:
export PS1="\u@\h \W[\033[32m]\$(parse_git_branch)[\033[00m] $ "
有这行:
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
然后打开一个新的终端窗口,然后尝试是否更好。
自定义PS1变量时,您需要用\[
和\]
包围不可打印的字符,否则bash不能正确计算提示的长度,因此光标会重叠文本
更新
我只需要替换这段代码即可:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/ (\1)/'
}
export PS1="\u@\h \W[\033[32m]\$(parse_git_branch)[\033[00m] $ "
有这行:
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\] \[\033[33;1m\]\w\[\033[m\] (\$(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \$ "
或者,如果您要坚持使用解决方案,请用以下更正代替它:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
UPDATE2
替换此行:
export PROMPT_COMMAND="echo -n \(\$(date +%H:%M:%S)\)\ "
此行:
export PROMPT_COMMAND=update_terminal_cwd
现在您的终端应该可以了!如果您想在提示前添加日期和时间, 然后编辑此行:
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
像这样:
export PS1="($(date +%H:%M:%S)) \u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "