当我粘贴一个长字符串(即,比终端窗口的宽度更多的字符)时,终端不会自动滚动并将它们放在多行中。
相反,它基本上换行到同一行。换句话说,它打印到当前行的末尾,然后从同一行的开头开始打印现有字符行的开头开始打印现有字符...
这是一个屏幕截图。注意行首的字符“789abc...”。

我在 10.8.3 和 Terminal 2.3 上。$TERM 是 xterm-256color。
一位同事的机器设置完全相同(尽管终端颜色不同,可能还有其他配置),他可以让它滚动。
有任何想法吗?
谢谢!
当我粘贴一个长字符串(即,比终端窗口的宽度更多的字符)时,终端不会自动滚动并将它们放在多行中。
相反,它基本上换行到同一行。换句话说,它打印到当前行的末尾,然后从同一行的开头开始打印现有字符行的开头开始打印现有字符...
这是一个屏幕截图。注意行首的字符“789abc...”。

我在 10.8.3 和 Terminal 2.3 上。$TERM 是 xterm-256color。
一位同事的机器设置完全相同(尽管终端颜色不同,可能还有其他配置),他可以让它滚动。
有任何想法吗?
谢谢!
听起来您没有正确标记 PS1 提示字符串的非打印部分。非打印部分(例如颜色更改转义序列) - 并且只有非打印部分 - 需要标记,\[ ... \]以便外壳可以告诉它们不占用屏幕上的空间(因此可以知道在哪里换行)。例如,我的提示字符串是\[\e[0;32m\]\h\[\e[m\]:\W \[\e[0;34m\]\u\[\e[m\]$,解析为:
\[\e[0;32m\]- 将颜色更改为绿色类型(非打印,所以它被包裹在\[ ... \])\h- 主机名(打印)\[\e[m\]- 正常打印(无颜色)(非打印,因此包装):\W- 当前目录(和分隔符)(打印)\[\e[0;34m\]- 更改为蓝色类型(非印刷)\u- 主机名(打印)\[\e[m\]- 普通类型(非印刷)$- 实际命令之前的最终分隔符