0

嗨,我是 OSX 命令行界面的新手。在我开始编码之前,我改变了我喜欢的 bash 颜色。

#github branch show
parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

#export PS1="\W \$"
export PS1="\[\e[0;36m\W\e[m\e[32m\$(parse_git_branch)\[\033[00m\] $ "

#hightlight path
alias ls="ls -G"

它大部分工作正常,但是当我使用向上和向下键移动到上一个命令时,上一个命令会像这样覆盖当前目录。

Desktop $
Descd ~

是否有任何文档可以让我了解有关 PS1 设置的更多信息并解决此问题?

提前致谢。

4

1 回答 1

0

您只想将不使光标前进的字符包含在\[...\].

将顶部的提示与底部的正确提示进行比较。

export PS1="\[\e[0;36m\W\e[m\e[32m\$(parse_git_branch)\[\033[00m\] $ "
export PS1="\[\e[0;36m\]\W\[\e[32m\]\$(parse_git_branch)\[\033[00m\] $ "

(我也冒昧地\e[m从您的提示中间删除了一个明显不必要的内容。)

于 2016-08-26T13:32:54.770 回答