有几个点可以通过 I/O,其中一些(据我所知)是 shell、pty、tty、termios、终端模拟器应用程序。在大多数终端模拟器中,长命令行(超过当前 $COLUMNS 的命令行)在用户通过按 Enter 提交命令之前换行到一个新行。此外,当如预期的那样从命令行中删除适当数量的字符时,该行将向后换行到上面的行。
我的问题是:这种魔法通常在哪里处理?它是 termios 设置,还是 shell 的一部分,还是终端模拟器应用程序对此负责?
有关更多上下文,我在 Ubuntu 上使用 Terminator 终端模拟器应用程序 - 换行工作非常好(所以我的 $PS1 提示应该没有问题)。但是我正在开发我自己的终端模拟器应用程序,它与 go pty spawner (github.com/kr/pty) 一起工作,我遇到了长行没有换行的问题,但是同一行。