2013-03-26 35 views
0

我刚刚编辑了我的.bash_profile来添加git分支显示。我将它基于我在网上找到的一个版本,但是现在当我在shell中写入一些内容时,它会覆盖第一行,然后开始换行到新行。Bash重复第一行

function proml { 
    case $TERM in 
    xterm*) 
    TITLEBAR='\[\033]0;\[email protected]\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

这是问题吗?在功能>proml结尾丢失大括号?

function proml { 
    case $TERM in 
    xterm*) 
    TITLEBAR='\[\033]0;\[email protected]\h:\w\007\]' 
    ;; 
    *) 
    TITLEBAR="" 
    ;; 
    esac 

PS1="${TITLEBAR}\ 
\w$WHITE\$(parse_git_branch)\\e[m$ " 
} 
+0

我有在最后的大括号,我只是不包括它,因为有一对夫妇更行功能完成 – eytanfb 2013-03-27 05:52:50

0

Assumeing $WHITE包含控制代码设置文本颜色,你需要把它们放在 \[ ... \]防止bash从思考这些字符有助于提示的长度。

function proml { 
    case $TERM in 
    xterm*) 
    TITLEBAR='\[\033]0;\[email protected]\h:\w\007\]' 
    ;; 
    *) 
    TITLEBAR="" 
    ;; 
    esac 
} 

PS1="${TITLEBAR}\ 
\w\[$WHITE\]\$(parse_git_branch)\[\e[m\]$ " 
+0

之前,它仍然是这样做 – eytanfb 2013-03-27 05:55:14

+0

我想我摔过逃避一些反斜杠。试试这个更新(我实际上试过了,它似乎工作) – chepner 2013-03-27 12:34:26

+0

不幸的是,它仍然做同样的事情 – eytanfb 2013-03-27 19:05:02