A maioria dos emuladores de terminal pode "fazer" isso, mas é necessário algum trabalho:
- Suponha que a linha que você deseja mover esteja na parte inferior da tela.
- Se você quiser mover essa linha, rolaria (ou "indexaria") a linha enviando uma sequência de escape para a linha inferior e (contando!) movendo a linha para cima pelo número de linhas que você deseja rolar .
- Rolagem move todas as linhas na tela. Você pode limitar o número de linhas que são movidas, definindo uma região de rolagem. Ao fazer isso, você poderia evitar que as linhas na metade superior da tela fossem embora. Mas as linhas entre a posição original de sua linha e sua meta desaparecerão.
Isso só move a linha. Você pode mover uma linha para baixo, similarmente, usando "indexação reversa". Estas operações, a propósito, não estão no padrão ECMA-48, mas estão em algo parecido com o xterm (baseado no DEC vt100). ansi-term
suporta rolagem / indexação.
Finalmente, é apenas para cima ou para baixo. Para mover uma linha para a esquerda / direita, você deve enviar sequências de escape para inserir ou excluir caracteres enquanto o cursor estiver no início da linha.
Essas seqüências de escape são documentadas na página de manual terminfo(5)
. Eu mencionei estes:
csr
(definir região de rolagem)
ind
(índice)
rin
(índice reverso)
cup
(posição do cursor)
ich
(inserir caractere)
dch
(excluir caractere)
Leitura adicional: