GNU 屏幕中分离的输入行

GNU 屏幕中分离的输入行

是否可以使用 Screen 将我的输入与整个 shell 分开?我的目标类似于状态行,如果我输入的内容超出单行的内容,状态行就会扩展,并且当我按 Enter 时,状态行会“提交”/“发送”到 shell。

我希望使用 screen+telnet 组合一个简单的配置,用作 MUSH/MUD/MUCK/MOO 客户端。使用 telnet 的当前问题是从远程服务器发送的数据被插入到光标位置,如果您键入很长的段落,这会很糟糕。

答案1

一个好的架构是将屏幕分为两个窗口,一个用于命令输入,一个用于程序显示。这基本上就是普通 MUD 客户端所做的事情。您可以在屏幕中使用split命令 ( C-a S) 执行此操作。

创建一个命名管道将输入从输入窗口传输到 telnet 窗口:mkfifo mud-input-fifo。在其中一个窗口中,运行telnet mud.example.com 1234 <mud-input-fifonc mud.example.com 1234 <mud-input-fifo(nc网猫,网络瑞士军刀)。在另一个窗口中,运行rlwrap tee mud-input-fifo(回卷为任何行输入程序提供行版本)。

Emacs 也可以做到这一点。但你最终会在 Emacs 中实现一个 MUD 客户端,这之前已经完成了(mu.el,mud.el,mudel.el,eMUD,……)。

答案2

这不会执行您所要求的操作,但在许多系统(包括 linux 和大多数 BSD)上,您可以为“rprnt”操作设置一个键:

 stty rprnt '^R'

在使用 tty 驱动程序进行输入处理的程序中按下该键 [我认为当您连接到这样的原始服务时 telnet 会执行此操作] 将导致输入行重新显示在下一行

所以你的屏幕将如下所示:

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

除此之外,您还需要获得一个真正的 MUD 客户端,例如tinyfugue。

相关内容