Mercurial 的条件提示

Mercurial 的条件提示

我正在尝试显示如下所示的提示:

$ some-folder (patch-name):

当我执行以下操作时,我能够使其正常工作:

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

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

但是,当我没有应用任何补丁时,情况如下:

$ some-folder ():

如果没有应用补丁,我希望它看起来像这样:

$ some-folder: 

我有办法做到这一点吗?

答案1

您可以使 的输出hg_ps1以命令的结果为条件hg,例如

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

答案2

您可以使用以下命令来显示已应用和未应用的补丁:

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'

相关内容