Exibe a legenda da tela na primeira linha do terminal

8

Quando inicio um novo terminal, o prompt está na primeira linha. Depois de trabalhar por um tempo (ou executar um comando que produz alguma saída), o prompt está na última linha. Lá ele permanecerá durante o resto da sessão, a menos que eu pressione Ctrl - l , execute clear ou reset ou algo semelhante.

Para obter alguma medida de continuidade no trabalho, uso screen com um truque para exibir o nome da sessão na legenda (eu uso o último com os dois comandos screen em .screenrc ).

Para evitar sobrecarga cognitiva ao confundir a área de trabalho, gostaria que essa legenda fosse exibida na parte superior do terminal.

    
por l0b0 09.08.2012 / 11:35

1 resposta

3

Você tem sorte, a tela honra salvar e restaurar comandos. Então, com o bash, isso pode ser feito.

Este fornece instruções sobre como mover o cursor com especial seqüências de escape. Você pode escrever "Hello World!" no canto superior esquerdo com isto:

echo -e "3[s3[2;0HHello World!            \n                        3[u"

Explicado: O caractere 3[s salva a posição atual do cursor, que é o que queremos que os tamanhos dos terminais de tela b / c possam variar muito. Então, 3[2;0 move o cursor para a terceira linha para o primeiro caractere (começamos a contar no canto superior esquerdo e com 0). Depois vem o texto e uma pequena ilustração do que é possível. Finalmente, o código 3[u coloca o cursor de volta para onde foi 3[s foi enviado.

Este exemplo move o cursor para a segunda linha, porque ao emitir o comando 2 novas linhas são impressas, então qual é a terceira linha atual será a primeira linha.

Você pode usar isso junto com a legenda da sessão que você já pode obter pela explicação que você já vinculou.

    
por 09.08.2012 / 13:27