Qual é o nome da saída de formatação do man?

5

A saída do comando man possui texto em negrito e sublinhado que pode ser lido por less .

Por exemplo, H\x08HE\x08EL\x08LL\x08LO\x08O exibe HELLO (negrito) ou H\x08_E\x08_L\x08_L\x08_O\x08_ exibe OLÁ com um sublinhado.

Como esse tipo de formatação é chamado?

    
por jcubic 08.03.2014 / 11:25

2 respostas

8

O método é chamado overstriking ou overtyping, e remonta aos dias das máquinas de escrever.

O byte 0x08 (também conhecido como \x08 ou ^H ) é o caractere "Backspace" do ASCII. Com máquinas de escrever e impressoras de linha, ele moveria o cursor de volta um caractere, para que o caractere seguinte fosse impresso no papel na mesma posição do último. Mais comumente, um caractere está sobrecarregado (resultando em texto em negrito) ou acima de um sublinhado _ (resultando em texto sublinhado).

Os terminais de computador normalmente também excluem o caractere backspaced-over, portanto, esse método não funcionaria mais. No entanto, muitos pagers como less (o pager padrão usado por man ) ou w3m traduz automaticamente os dois casos mencionados acima em formatação real de negrito / sublinhado.

(veja também caracteres de controle de carro ASA usados por mainframes e impressoras de linha; eles têm um "overstrike last" linha "opção em vez de usar Backspace.)

Compare isso com combinando caracteres encontrados em Unicode.

    
por 08.03.2014 / 11:42
2

Isso é simples ASCII, nada de especial sobre isso. O \x08 é o código ASCII para backspace, então o primeiro faz H-backspace-HE-backspace-E ... (grava todos os caracteres duas vezes) e o segundo faz H-backspace-_ e assim por diante. É o que você faria em uma máquina de escrever para ficar em negrito e sublinhado.

Por outro lado, para lidar com cores, você gera códigos de escape ASCII que são interpretados pelo terminal virtual para mostrar cor, piscar, posicionar o cursor e assim por diante. É como comandos como ls escrevem em cores:

link

Para permitir que less preserve os códigos de escape ASCII, chame-o como less -R . Por exemplo, este comando exibe ls output em cores em less :

/bin/ls --color -B -F -1 | less -R

Qual eu tenho como apelido para lsl .

    
por 08.03.2014 / 11:39

Tags