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回避策はありません。tmuxscreen_write_vnputs、エスケープ文字(および他のほとんどの制御文字)を削除します。関連するコードブロックは次のとおりです。

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

関連情報