Por que os terminais são renderizados em blocos de largura fixa [duplicados]

0

Estou tentando entender como os terminais funcionam. Eu estou olhando para a implementação do plugin NetBeans Terminal. Eu percebo que pode não ser o candidato ideal, mas minhas habilidades de CPP são bastante limitadas. Então eu pensei em começar com algo que eu conheço.

O Netbeans Terminal parece assumir que um caractere tem um bloco de largura, ou pelo menos que a largura de um caractere está em múltiplos de uma largura de bloco. (Um bloco aqui é apenas um retângulo com largura fixa e altura). Se eu não estou completamente errado Gnome Terminal & O Konsole funciona em linhas semelhantes. Escusado será dizer que este parafusos com algumas fontes, especificamente fontes Ind, as fontes do meu interesse. Embora a razão pela qual o Netbeans tenha sido implementado dessa maneira possa ser específica à implementação, a verdadeira pergunta que eu faço é por que os Terminais são implementados dessa maneira em geral.

Eu não sei por onde começar, então qualquer recurso de leitura que você possa sugerir me ajudaria muito. Eu li através de TTY desmistificado, mas isso não se aprofunda em detalhes de renderização de caracteres.

    
por ShaggyInjun 31.01.2017 / 06:38

1 resposta

2

O plugin Netbeans Terminal não é um terminal, é um emulador de terminal , e simula como um terminal funciona e parece. Terminais são baseados em caracteres, não gráficos, então eles usam caracteres de largura fixa, não fontes renderizadas. Alguns emuladores de terminal têm a capacidade de permitir que você use fontes de largura variável, geralmente apenas um conjunto de seleção do que o sistema realmente possui, no entanto. Para as fontes índicas, isso pode ser um problema, e algum emulador pode permitir seu uso, mas não sei qual, se houver. Normalmente, o emulador de terminal é usado para controle de computadores e trabalhos de programação, e para isso a largura fixa funciona melhor de qualquer maneira, então há muito pouca motivação para mudar as coisas.

Você deve ter notado que a maioria dos editores de texto também usa fontes monoespaçadas. Sim, eles geralmente podem ser configurados para usar fontes com espaçamento variável, mas não o padrão. Processadores de texto, OTOH, padrão para fontes renderizadas, porque geralmente é o que o usuário deseja imprimir de qualquer maneira. A GUI do seu sistema operacional também usa os bons, porque é mais fácil de ler para as pessoas. Até mesmo o seu navegador provavelmente está exibindo fontes renderizadas. Mas tudo o que está marcado como code ainda é transformado em fonte monoespaçada.

Como a programação é muito mais fácil quando você vê caracteres de largura fixa que se alinham claramente, e as pessoas já se acostumaram com isso, os ambientes em que a codificação geralmente é feita terão como padrão as fontes monoespaçadas também. Por exemplo, se você tiver extensões de tipo de desenvolvedor no seu navegador, elas provavelmente mostrarão todo o conteúdo delas em fontes monoespaçadas. Se você clicar com o botão direito do mouse nessa página e selecionar "Ver código-fonte", o navegador abrirá uma página / janela / guia com a fonte em fonte monoespaçada.

Como nota extra, até hoje a maioria dos terminais reais ainda não exibe nada além de uma única fonte, monoespaçada, é claro, e nem sempre é capaz de ajustar o tamanho disso.

    
por 31.01.2017 / 07:26

Tags