iTerm2是否有办法让每个新标签页显示不同的颜色(在Mac上使用Oh My Zsh)?

4
我喜欢在iTerm2中使用不同颜色的标签,以便快速知道每个标签所代表的内容。当然,我可以每次手动设置它们,或者下载一个脚本来让我可以从终端自己设置它们(见图片示例--我已经手动更改了每个标签的颜色)。我想知道是否有一种方法(内置于iTerm2或通过Oh My Zsh脚本),可以在打开标签时自动为标签使用新的(可能是随机的)颜色?我已经搜索过了,除了SSH可以有不同的标签颜色之外,找不到其他任何东西。谢谢任何帮助!

enter image description here

2个回答

3
当使用无参数的 color 时,支持随机颜色自动化。请将以下行添加到 ~/.profile~/.zshrc 中:
PRELINE="\r\033[A"

function random {
    echo -e "\033]6;1;bg;red;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
}

function color {
    case $1 in
    green)
    echo -e "\033]6;1;bg;red;brightness;57\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;197\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;77\a"$PRELINE
    ;;
    red)
    echo -e "\033]6;1;bg;red;brightness;270\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;60\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;83\a"$PRELINE
    ;;
    orange)
    echo -e "\033]6;1;bg;red;brightness;227\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;143\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;10\a"$PRELINE
    ;;
    *)
    random
    esac
}

#color    #uncomment to enable automatically set random color when tab created

每次创建新的iterm2标签后,使用命令color自动为其提供新的/随机颜色。
如果您希望在创建iterm2标签时自动设置颜色,则只需将color添加到.zshrc / .profile的末尾或者就在function color之后。

2
将以下内容添加到您的 .bashrc/.zshrc/.whateverrc 文件中,以便在每次打开 iTerm2 的新标签时获取随机标签颜色:
function tabcolor {
  echo -n -e "\033]6;1;bg;red;brightness;$1\a"
  echo -n -e "\033]6;1;bg;green;brightness;$2\a"
  echo -n -e "\033]6;1;bg;blue;brightness;$3\a"
}

tabcolor $(jot -r 1 0 255) $(jot -r 1 0 255) $(jot -r 1 0 255)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接