2013-03-26 39 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