Terminal

Terminator 或 Guake 等終端無法解析 .bashrc 文件中設置的 git 提示配置文件

  • July 30, 2018

Terminator 或 Guake 等終端無法解析 .bashrc 文件中設置的 git 提示配置文件。PS1 變數未為使用 xterm 作為 guake 和 terminator 終端使用的基礎的終端設置。因此,如果自定義函式用於顯示自定義路徑,如果目前目錄是 GIT 目錄,那麼這些變數或函式將不起作用。

例如:$parse_git_branch

設置 PS1 之前設置 PS1 後

我想出了解決方案,它是在我的主目錄中使用 .bashrc 文件。如果我們在文本編輯器中打開這個文件,我們將在這裡找到一行檢查目前終端是否為 xterm 並為其設置一些值:

# If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac

因此,只需使用 # 給 PS1 進行註釋,然後簡單地將 PS1 替換為以下值:

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

# If this is an xterm set the title to user@host:dir
# old value:PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

case "$TERM" in
xterm*|rxvt*)
   PS1="${debian_chroot:+($debian_chroot)}\[\033[1;34m\]\H:\[\033[1;35m\]\[\033[1;35m\]\w\[\033[1;92m\]\$(parse_git_branch)\[\033[0m\]$ "
   ;;
*)
   ;;
esac

引用自:https://unix.stackexchange.com/questions/399680