Linha de entrada divorciada no GNU Screen

3

É possível divorciar minha entrada do shell geral usando a Tela? O que eu estou querendo é se assemelhar a uma linha de status que se expande se eu digitar mais do que couber dentro de uma única linha e for "enviado" / "enviado" para o shell quando eu pressionar enter.

Estou procurando montar uma configuração simples para usar como um cliente MUSH / MUD / MUCK / MOO usando screen + telnet. O problema atual com o uso do telnet é que os dados enviados do servidor remoto são inseridos na posição do cursor, o que é péssimo se você estiver digitando um longo parágrafo.

    
por GothAlice 12.05.2011 / 02:16

2 respostas

2

Uma boa arquitetura seria dividir a tela em duas janelas, uma para entrada de comando e outra para exibição de programa. Isso é basicamente o que um cliente normal faria. Você pode fazer isso na tela com o comando split ( C-a S ).

Crie um canal nomeado para transmitir sua entrada da janela de entrada para a janela de telnet: mkfifo mud-input-fifo . Em uma das janelas, execute telnet mud.example.com 1234 <mud-input-fifo ou nc mud.example.com 1234 <mud-input-fifo ( nc é netcat , o canivete suíço de rede). Na outra janela, execute rlwrap tee mud-input-fifo ( rlwrap fornece edição de linha para qualquer programa de entrada de linha ).

Emacs também poderia fazer isso. Mas você acabaria implementando um cliente MUD no Emacs, o que já foi feito antes ( mu.el , < href="http://www.waider.ie/hacks/emacs/mud.html"> mud.el , mudel.el , eMUDs ,…).

    
por 14.05.2011 / 00:11
0

Isso não faz o que você está pedindo, mas em muitos sistemas (incluindo linux e a maioria dos BSDs) você pode definir uma chave para a ação "rprnt":

 stty rprnt '^R'

e pressionando a tecla enquanto estiver em um programa que está usando o driver tty para processamento de entrada [que acho que o telnet faz quando você está conectado a um serviço bruto como este] fará com que a linha de entrada seja exibida novamente na próxima linha

Assim, sua tela será parecida com:

SERVER PROMPT> your text your text your text your textOUTPUT FROM SERVER^R
your text your text your text your text your text_

Além disso, você precisará obter um cliente MUD real como o tinyfugue.

    
por 13.05.2011 / 16:45