Eu não conheço nenhum terminal que tenha, e direi apenas por que não acho que nenhum terminal faça isso:
tab
é um dos muitos caracteres que, uma vez exibidos, exibe mais de um caractere na tela ou move o cursor. CR (mover para o início da linha), LF (para baixo), backspace (esquerda) e todas as seqüências de escape que movem o cursor ou alteram os atributos dos personagens e / ou não exibem nada ...
O urxvt nem sabe exatamente o que o aplicativo produz. Quando um aplicativo envia um LF (\ n) para o lado escravo do pseudo-terminal, você notará que, na maioria das vezes, ele não move apenas o cursor para baixo, como o LF normalmente faz, ele também o move de volta. para o início da linha. Isso porque o driver pty traduz o "\ n" para "\ r \ n" antes de disponibilizá-lo para leitura do lado master do terminal por urxvt (você pode usar stty para alterar esse comportamento) .
Observe também que a seleção não captura espaços à direita.
A seleção X seleciona os caracteres que são exibidos, não aqueles que foram enviados pelo (s) aplicativo (s) para gerar aquela exibição (considere que qualquer caractere em qualquer posição na tela pode ter sido substituído várias vezes por um ou mais aplicativos (s)).
Alguns terminais permitem capturar todos os caracteres que eles recebem no lado mestre do pseudo-terminal, e se não, você pode usar "script" ou "tela" para fazer isso. Mas, para obter a saída de um aplicativo na seleção X, você também pode simplesmente fazer:
the-command | xsel