Bash

mercurial 的條件提示

  • May 18, 2017

我試圖有一個看起來像這樣的提示:

$ some-folder (patch-name):

當我執行以下操作時,我能夠讓它工作:

hg_ps1() {
   hg prompt " ({patch})" 2> /dev/null
}

export PS1='$ \W$(hg_ps1): '

但是,這就是我沒有應用任何更新檔時的樣子:

$ some-folder ():

如果沒有應用更新檔,我希望它看起來像這樣:

$ some-folder: 

有沒有辦法我可以做到這一點?

您可以使輸出hg_ps1以命令的結果為條件,hg例如

hg_ps1()
{
 typeset prmpt=$(hg prompt "{patch}" 2>/dev/null)
 [[ -n "$prmpt" ]] && echo " ($prmpt)"
}

您可以使用以下內容顯示已應用和未應用的更新檔:

hg prompt --angle-brackets "<patches|join( → )|pre_applied(${COLOR_BROWN})|post_applied(${COLOR_NC})|pre_unapplied(${COLOR_BLACK})|post_unapplied(${COLOR_NC})>"

選擇你想要的顏色,例如我使用以下:

COLOR_BROWN=$'\e[0;33m'
COLOR_NC=$'\e[0m' # No Color
COLOR_BLACK=$'\e[0;30m'

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