代码之家  ›  专栏  ›  技术社区  ›  NVaughan

如何在zsh中获得“彩虹提示”?

  •  1
  • NVaughan  · 技术社区  · 7 年前

    我喜欢bash中所谓的“彩虹提示”:

    enter image description here

    我由此得出:

    export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"

    不幸的是,该代码在zsh(我的主shell)中不起作用。

    如何在zsh中实现相同的结果?

    1 回复  |  直到 7 年前
        1
  •  4
  •   pepelu chepner    5 年前

    zsh ,因为shell为设置颜色提供了与终端无关的转义序列。例如:

    PS1='%B[%F{red}%n%F{green}@%F{blue}%m %F{purple}%~] %# %b%f'
    
    • %B / %b -启用/禁用粗体
    • %F{...} -设置前景色。您可以为基本颜色使用颜色名称,或使用整数索引,如 %F{173} 对于具有较大选项板的端子。
    • %f -关闭对前景色的更改(即使用默认颜色)
    • %n -用户名
    • %m -主机名到第一个 .
    • %~ -目录名称
    • %# - # 对于根, % 对于普通用户(如果您仍然需要 $ 而不是 % ,这只是常规条件序列的快捷方式 %(!.#.%%) ,可以替换为 %(!.#.$) ,如中所示 man zshmisc ,在外壳状态下。)

    看见 man zshmisc公司 ,在“提示序列扩展”下查看完整列表。