我使用 kermit 通过串行连接到设备。该设备相当“笨拙”,没有任何花哨的外壳。它实际上只是通过串行接收命令并通过串行发送回输出。
问题是我每隔一个单词就打一次字,而且我无法退格,所以我只能重新开始。
有什么方法可以让 kermit (或等效的)在本地缓冲每行以进行编辑,然后在按下 Enter 时将其发送到该行,以便我可以在需要时退格?
答案1
要建议替代方案,您是否尝试过minicom
或screen
。您想要的是更改行规则,听起来您处于原始模式(每个字符发送到远程)而不是缓冲(或熟)模式(cr 触发要发送的缓冲区)。还有一种半熟模式(cbreak)。
所有这些值都可以使用该命令设置stty
,但是在初始化时可能kermit
会覆盖它们,除非您满足这一点。
那你想要^? (DEL) 为删除字符。 Kermit 文档中有一个关于此的部分。这里。其中解释了如何设置基本的终端配置文件xterm
。
所以我建议使用minicom
,但由于远程设备的传输协议,这可能是不可能的。如果您有更多信息,那么编辑你原来的问题,除非它确实是一条评论。
请注意,当您使用 stty 时,它是您设置到串行设备的输入而不是输出stty [options] </dev/sttyN
(因为它想要在屏幕上显示输出)。
答案2
我已经尝试了两三个小时来弄清楚如何使用screen
or来做到这一点minicom
,但我无法弄清楚。我并不是说没有办法让这些程序缓冲行之类的,但是......如果有的话,我不知道。
我现在使用一个名为罗杰·梅尔 (Roger Meier) 的 CoolTerm。它是免费软件,可在 Linux/Windows/OS X 上运行,具有漂亮的 GUI,并且使行缓冲工作非常简单。只需单击选项并从左侧列表中选择终端视图,然后将终端模式更改为线路模式(默认仍为原始模式)。
本指南由 Sparkfun 提供有帮助。