Terminal - ^ [[H ^ [[2J - suporte quadrado de circunflexo H suporte quadrado de cursor 2 J

0

O que isso comanda? Eu sei que, o CSI n ; m H é para mover o cursor para n row e m column, mas o que é o comando do título? ^[[H^[[2J ?

    
por Nolias 24.10.2017 / 15:08

2 respostas

2

Essa é uma representação visual (em que ^[ representa o caractere ESC) da sequência para limpar a tela e colocar o cursor no topo em terminais do tipo xterm, pelo menos:

$ TERM=xterm tput clear | cat -v
^[[H^[[2J

Para saber mais sobre essas sequências de escape, consulte o documento ctlseqs.txt enviado com xterm . Lá você encontrará:

ESC [
Control Sequence Introducer (CSI is 0x9b).

e:

CSI Ps ; Ps H
Cursor Position [row;column] (default = [1,1]) (CUP).

e:

CSI Ps J Erase in Display (ED).
Ps = 0 -> Erase Below (default).
Ps = 1 -> Erase Above.
Ps = 2 -> Erase All.
Ps = 3 -> Erase Saved Lines (xterm).

(observe que ^[[2J não limpa as linhas salvas ou a tela alternativa).

tput clear (ou clear ) nos terminais xterm -like faz o mesmo que printf '\e[H\e[2J' . Para isso, ele consulta o banco de dados terminfo para saber qual é a seqüência de caracteres do recurso clear para o terminal cujo nome está armazenado na variável de ambiente $TERM . Se você despejar a entrada para o terminal xterm no banco de dados terminfo com infocmp xterm , verá:

$ infocmp -1 xterm | grep clear
        clear=\E[H\E[2J,

Qual é outra maneira de descobrir uma determinada sequência de escape:

$ infocmp -L -1 | grep J
        clear_screen=\E[H\E[2J,
        clr_eos=\E[J,

(aqui usando o nome L ong para os recursos). Em seguida, você pode fazer man 5 terminfo para uma descrição desses recursos.

    
por 25.10.2017 / 07:16
1

Os valores n e m padrão são 1 em CSIn;mH , portanto, ^[[H move o cursor para a posição inicial. ^[[2J limpa a tela, deixando o cursor onde está.

    
por 24.10.2017 / 15:29