答案1
这可能是因为您正在使用bash
(或其他使用 readline 的 shell)并且在您的~/.inputrc
(或全局/etc/inputrc
)中您有
set horizontal-scroll-mode On
从man readline
:
horizontal-scroll-mode
(Off
)
当设置为 时On
,使 readline 使用单行进行显示,当输入变得比屏幕宽度长时,在单屏幕行上水平滚动输入而不是换行到新行。
解决方案:删除该行(默认设置为Off
)或显式将该选项设置为Off
:
set horizontal-scroll-mode Off
Readline/etc/inputrc
仅在~/.inputrc
不存在或无法读取时使用(~/.inputrc
也可能$include /etc/inputrc
),因此即使存在On
并且/etc/inputrc
您不能或不想更改它,您始终可以通过编辑来覆盖设置~/.inputrc
。
该更改不会自动影响已经运行的 shell。您可以使用以下命令重新加载配置
bind -f ~/.inputrc
(看这),或者仅更改该设置
bind 'set horizontal-scroll-mode off'
horizontal-scroll-mode
如果TERM
环境变量设置为 terminfo 数据库中找不到的终端名称,readline 库也会回退;您可以使用命令检查是否是这种情况infocmp
。看这里了解如何补救这种情况。
一些不使用 readline(特别是Android 上的默认设置)的 pdksh 派生 shell 中使用了类似的界面(但<
在行的右端显示标记) 。mksh
对于这种情况,没有可能的解决方法。