如何在 tmux run-shell 命令中使用颜色输出?

如何在 tmux run-shell 命令中使用颜色输出?

我已经绑定了一个键来使用 tmux 的命令运行脚本run-shell,但我找不到任何使用颜色输出的方法。

  • 正常的 ansi 代码不起作用,例如
    echo -e "\e[32mblah blah\e[0m"
  • tmux 格式化不起作用(我也不期望它起作用),例如
    echo -e "#[fg=colour250]blah blah"
  • 我也没有尝试过其他任何东西,例如 256 色代码,例如
    printf "\x1b[38;5;57mblah blah"

答案1

没有解决方法run-shell,因为tmux从作业中复制数据screen_write_vnputs,丢弃任何转义字符(以及大多数其他控制字符)。这是相关的代码块:

        if (*ptr == '\001')
            gc.attr ^= GRID_ATTR_CHARSET;
        else if (*ptr > 0x1f && *ptr < 0x7f) {
            size++;
            screen_write_putc(ctx, &gc, *ptr);
        }
        ptr++;

相关内容