【发布时间】:2021-09-28 07:17:31
【问题描述】:
在我的.zshrc 文件中,我有以下几行来解析我当前的 git 分支并将其显示在终端中,.zshrc 文件如下所示:
# Load version control information
autoload -Uz vcs_info
precmd() { vcs_info }
# Set up the prompt (with git branch name)
setopt PROMPT_SUBST
PROMPT='%n in ${PWD/#$HOME/~} ${vcs_info_msg_0_} > '
# Format the vcs_info_msg_0_ variable
zstyle ':vcs_info:git:*' formats '(%b)'
所以我的终端最终看起来像这样:
me in ~/repos/myrepo (feat/MYISSUE-123/fix-the-broken-stuff) >
我想修改上面的脚本,使MYISSUE-123 的颜色与分支名称的其余部分不同。
我该怎么做?
【问题讨论】:
-
那么为什么要投票结束这个问题呢?
-
不幸的是,我不知道 zsh,但我会尝试使用
git branch --show-current提取分支名称,然后将其传递给sed以围绕问题注入颜色。但我不确定它是否就这么简单。我认为在 bash 中,可以将 PROMPT_COMMAND 设置为任何脚本,以便您可以准备 PS1 可以使用的变量。 -
@PatrickJanser 代码已经这样做了,分支名称存储在
$vcs_info_msg_0_中。但是,OP 只想为分支名称的 部分 着色。由于这是提示的一部分,理想情况下,解决方案不应调用任何外部命令,以避免分叉进程,从而减慢提示的显示速度。 -
没有冒犯,但这太荒谬了。我被这两件事困住了。
-
@user1934428 这真的很重要。这个问题完全没问题。