Copiar & colar a partir de uma tela de terminal nunca será totalmente confiável, pois está lidando com a saída de tela em vez do material de origem original. Se alguns aplicativos ecoam o texto para o terminal de uma maneira incomum e isso faz com que o terminal não consiga adivinhar qual era o texto original, provavelmente não há muito que você ou o terminal possam fazer a respeito.
Muitas informações sobre o texto original são potencialmente perdidas quando são renderizadas para um terminal: por exemplo, se uma área de espaço em branco foi produzida por uma guia ou por uma série de espaços, ou se duas linhas de texto foram originalmente uma longa fila que foi embrulhada ou duas linhas separadas.
O terminal tenta fazer o melhor para você copiar & cole o texto original que foi ecoado no terminal, mas nem sempre pode saber.
Como experiência, tente isto:
- Use
less
para exibir um arquivo que contenha muitas linhas de linha que envolvem várias linhas de terminal.
- Clique três vezes em uma dessas linhas (para selecionar toda a linha).
less
selecionou toda a linha lógica que abrange várias linhas físicas e, se você colá-la em outro lugar, ela será preservada como uma linha longa.
- Pressione j algum número de linhas para que parte dessa linha longa desapareça na parte superior da tela.
- Pressione k uma ou mais vezes para rolar a linha lógica inteira de volta à exibição.
- Clique três vezes na linha lógica novamente. Desta vez, apenas uma linha física é selecionada. Isso porque
less
repintou a linha física da tela por linha física e o terminal não tem mais como saber se as linhas físicas estavam conectadas juntas.
- Agora, se você fosse arrastar e selecionar a linha lógica inteira manualmente e colá-la em outro lugar, descobriria que ela incorporou novas linhas.
YMMV nessa experiência porque seu terminal (ou versão de less
) pode ser mais ou menos inteligente que o meu.
Geralmente, quanto mais software produz o resultado, maiores são suas chances de copiar & cole exatamente o material original. cat
, por exemplo, é praticamente tão idiota quanto possível. (Você entende, é claro, que "burro" é um elogio!)
Se você obtiver um caractere de espaço extra no final de uma linha em tmux
, provavelmente é porque tmux
está ecoando esse caractere. Lembre-se de que tmux
faz sua própria emulação de terminal e, em seguida, emite novas sequências de terminal para renderizar no terminal subjacente. Talvez esteja ecoando esse caractere de espaço porque acredita que pode haver uma necessidade em alguns casos de sobrescrever algum outro caractere que ele acha que possa estar lá. Seja qual for o motivo, o terminal provavelmente não tem como saber que o caractere de espaço não é realmente parte do conteúdo original.