Por que o Linux permite backspaces ao colar texto em um shell?

3

Em muitas distribuições do Linux, os caracteres backspace são incluídos ao colar texto em um shell. Por que a colagem desses caracteres não é evitada - ou esse recurso fornece alguma funcionalidade útil?

Em outras palavras, o shell do Linux "sabe" se é uma string colada - ou digitada manualmente?

Como esse comportamento é tratado?

    
por Curcuma_ 13.03.2018 / 10:30

1 resposta

8

Um shell é apenas um aplicativo em execução em um terminal. Para colar, somente emuladores são relevantes, mas ainda existem terminais "reais" (dica: o console do Linux não é um desses).

Desconsiderando as várias implementações do console, porque o texto de colagem é feito de uma maneira mais limitada, os terminais em execução no X são o ponto da questão. Um emulador de terminal simplesmente vê uma série de eventos . Teclas digitadas ou texto colado são as mesmas para o emulador de terminal.

Considerando apenas emuladores de terminal (e selecione / cole entre eles), o retrocesso não é um problema, pois o trabalho de seleção / colagem é exibido com o que é exibido na janela do terminal. Ou seja, se um usuário selecionar texto na janela de um terminal, somente o texto imprimível (possivelmente com caracteres de guia como um caso especial). Não há nenhum caractere de backspace (a menos que alguém tenha uma implementação de terminal com bugs), porque um backspace diz ao terminal para mover o cursor left . Não há imprimível residindo à esquerda para o terminal fornecer em uma seleção. Existem centenas de outros controles de terminal que podem ser usados , mas o backspace é simples e amplamente usado.

Backspace é um problema com aplicativos mal implementados, como navegadores (que realmente devem fornecer exibições de texto imprimível ...), que aparentemente armazenam qualquer coisa que um roteirista decide que deve ser armazenado na tela.

Então ... ao invés de perguntar por que os emuladores de terminal ainda permitem o BS , pode-se perguntar por que os navegadores da GUI permitem esse comportamento.

    
por 14.03.2018 / 02:12