【问题标题】:Why the echo result of $vcs_info_msg_0_ contains strange characters in zsh?为什么 $vcs_info_msg_0_ 的回显结果在 zsh 中包含奇怪的字符?
【发布时间】:2013-03-02 11:15:57
【问题描述】:

这是我在 zsh 中的PROMPT 配置:

PROMPT=$'
%{$purple%}%n%{$reset_color%} at %{$orange%}%m%{$reset_color%} in %{$limegreen%}%~%{$reset_color%} $vcs_info_msg_0_
$ '

这就是我的 zsh 的显示方式

一开始我只是想把master**这个字符串拿到别的用处,后来搜索zsh是怎么得到的,发现消息是zsh的vcs_info包生成的,存放在$vcs_info_msg_0_中,但如屏幕截图所示,该变量的回显结果非常奇怪。为什么会发生这种情况,我如何才能获取存储库文件夹的 git 信息(带颜色的master**)?

【问题讨论】:

    标签: git echo zsh terminal-color


    【解决方案1】:

    那是因为该变量只能在提示中使用,其他任何地方都不能使用。你看到的奇怪的东西是 ZSH 在呈现提示时解释的特殊控制序列。

    【讨论】:

    • 很好的解释,那么有没有其他方法可以获取repo的git信息,如提示所示?
    • 这真的取决于你想要达到的目标。所做的只是解析git statusgit ls-files 等的输出,所以没有什么可以阻止你做同样的事情。
    猜你喜欢
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多