Detectando as configurações do Tabstop do Terminal

2

Estou escrevendo um pequeno programa que precisa quebrar o texto para produzir saída de várias colunas em uma tela de terminal. Isso é bastante simples, exceto por ter que levar em conta guias difíceis, o que não posso fazer sem saber quais são as configurações de parada de tabulação. Existe uma maneira de consultar as configurações de parada de tabulação? No OSX, o comando tabs aparece para definir guias, mas parece não reportá-las. Eu posso possivelmente analisar infocmp saída para o valor de it , mas isso parece ser apenas a largura de guia padrão, que pode ou não alinhar com o conjunto completo de paradas de tabulação.

Existe uma maneira canônica de extrair as configurações de parada de tabulação em terminais semelhantes a unix? No Windows?

    
por BrodieG 09.02.2016 / 16:24

1 resposta

4

O programa tabs usa dados do banco de dados do terminal para informar ao terminal o que paradas de tabulação para usar.

O computador não sabe sobre as paradas de tabulação: usando stty você pode configurar o driver de terminal para usar guias de hardware ou soft (a expansão usual de 8 colunas por parada de tabulação). Se você definir as guias hard / soft, a maioria dos aplicativos no sistema assumirá 8, de qualquer forma.

O banco de dados do terminal não fornece uma maneira padrão de determinar quais as paradas de tabulação estão definidas. Para as emulações VT100 amplamente utilizadas no xterm, etc., é possível determinar essa informação usando o relatório de posição do cursor. Alguém poderia escrever um aplicativo que escrevesse guias, usasse o relatório de cursor para ver onde o cursor terminava e computasse as paradas de tabulação. (O programa resize usa o relatório de posição do cursor para determinar o tamanho da tela).

O banco de dados de terminais do

ncurses fornece recursos de u6 que tentam descrever os relatórios de posição do cursor, mas para fins práticos apenas os relatórios no estilo do VT100 são suportados.

    
por 10.02.2016 / 00:19

Tags