我在 Windows 10 上安装了 WLS2 Ubuntu。
我在Windows 终端进而:
type 'man man' to enter manpage
press 'd' to scroll down
press 'q' to quit
目前一切看起来都很好:
...但当向上滚动时,会出现“幽灵”输出:
如果启动 WSL 并在命令, 一切安好。
我注意到,在全屏应用中,例如man
、vim
和less'
命令将禁用滚动条,但Windows 终端让我向上滚动。
有没有办法设置 Windows 终端以使其像其他终端一样运行。
答案1
听起来 Windows Terminal 在运行man
、、vim
和等应用程序时并没有被告知切换到备用屏幕缓冲区less
。
备用屏幕缓冲区旨在为全屏终端程序提供此功能。在正常操作中,输出会添加到回滚缓冲区(大多数终端都允许用户回滚到前几行)。切换到备用屏幕缓冲区时,回滚缓冲区保持不变,备用屏幕缓冲区输出不会添加到回滚缓冲区。从备用屏幕缓冲区返回时,将恢复原始回滚缓冲区状态。这就是全屏应用程序所
nano
使用的。
这听起来很像您所描述的——执行全屏程序后,您可以滚动回前几行。
如果正在使用备用模式,则全屏命令的输出将不会添加到回滚缓冲区。
显示什么echo $TERM
?如果没有screen-256color
,请尝试通过以下方式进行设置:
export TERM=screen-256color
这并不是最终的解决方案。它应该将会为您自动(且正确地)设置。
如果TERM
事实证明存在问题,那么您的启动脚本中是否有某些内容试图设置它?
grep -r TERM .*