命令在80个字符后换行


8

minicom连接到Yocto Linux计算机的串行控制台时遇到麻烦的问题。

我输入的命令在第80个字符后环绕在同一行。使用起来非常不便。我在该行开头输入的所有内容都会被该行的最后一个字符覆盖。

与同一台计算机的SSH连接可以正常工作。在第80个字符之后,ssh转到下一行。

这是stty设置:

stty -a
speed 115200 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

minicom的-w选项无效。还是一样的行为

minicom -w

resize命令在该计算机上不可用。它属于哪个包装?也许我可以安装它。

我该如何解决该问题?


TERM通过进行连接时,环境变量是什么minicom
2016年

echo $ TERM xterm
Oliver G.

显示stty -a内部执行的输出minicom
Arkadiusz Drabczyk

minicom-w帮助下运行吗?
2016年

如果我使用它putty而不是minicom串行终端程序,并启用了终端设置“每个CR中的隐式LF”,则该行为消失了。
奥利弗·G。

Answers:


4

通过串行线连接时,系统无法与终端协商窗口大小(NAWS- 关于窗口大小的协商RFC 1073)。在这种情况下,您可以获取系统默认的大小,甚至可以为零。两者都会使外壳的行编辑器感到困惑,后者需要知道终端的实际宽度才能使用其环绕功能。

bash感到困惑,认为由于终端的自动换行功能而进行了包装,并作为行编辑/显示的一部分移至当前(错误)行的开头。

解决方法是,您将与串行接口一起使用的大多数终端(包括minicom,请参见源代码)可以响应光标位置报告转义序列,resize以用于查找窗口大小,并且作为副作用设置了系统的思想您的终端窗口有多大。


1
我仍然很好奇为什么它环绕在同一行,而不是下一行。
2013年

3

这对我有用。需要将目标外壳程序设置为检查窗口大小,并将其设置为控制台GUI的正确大小。通过串口与腻子或minicom连接后:

shopt -s checkwinsize
resize

这似乎对我有用,但不清楚如何完成此操作或如何将其作为一般规则应用。
TheMeaningfulEngineer

将此添加到目标的.bashrc中:“ shopt -s checkwinsize”和“ resize
eval``
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.