Soa como um erro na solução do iTerm2 para a solução do vim para o envolvimento de linhas VT100.
Isso pode parecer rotatório, mas aqui está uma explicação:
-
Os emuladores de terminal
- armazenam o texto selecionado como linhas e, para fins práticos, não envolvem essas linhas.
- A maioria dos emuladores de terminal faz provisão especial para permitir que você selecione o texto que envolve a margem direita, como se fosse uma longa cadeia. Eles fazem isso detectando uma sequência de caracteres de impressão escritos (e envolvidos) ao redor da margem.
- A quebra de linha do VT100 apresenta um problema especial porque o terminal ignora (não imprimem) caracteres de controle (como retorno de carro) quando o cursor está ativado na margem direita. Pense nisso como uma maneira de suprimir uma linha em branco desnecessária.
- programas que usam endereçamento de cursor (como editores de texto) não necessariamente escrevem texto que você vê como empacotado de maneira que o terminal o veja como encapsulado . Pode haver uma lacuna.
- vim é uma exceção aqui, usando um caso especial para preencher essa lacuna escrevendo um caractere fictício que faz o encapsulamento acontecer, seguido pelo cursor endereçando para a próxima linha - e sobrescrevendo o caractere fictício.
O emulador de terminal tem que acompanhar esta dica e construir uma linha longa. Houve um relatório de bug do iTerm2 que pode estar relacionado (e foi fechado alguns meses antes desta questão):