为什么 WSL Ubuntu 控制台没有滚动条?

为什么 WSL Ubuntu 控制台没有滚动条?

Ubuntu WSL 应用程序启动的控制台没有滚动条,但wsl.exe(或bash.exe、、cmdPowershell)启动的控制台有滚动条,但两者看起来完全相同:

wsl.exe 和 ubuntu.exe 的屏幕截图

即使 wsl.exe 没有处于焦点,您也可以看到其中的滚动条(缺少 Ubuntu 徽标)。

为什么会这样?我该怎么办?

答案1

这是新的控制台功能

带有指向新控制台功能的链接的控制台选项屏幕

控制台行为

现在,您可以通过用鼠标抓住边缘并拖动来随意调整控制台窗口的大小。只有当您手动设置窗口尺寸(通过使用“属性”中的“布局”选项卡)或缓冲区中最长的文本行比当前窗口大小宽时,才会出现滚动条。

您可以恢复滚动条:

  • 通过使屏幕缓冲区的高度大于窗口高度,可以永久地实现这一点。我将其设置为 9999,这似乎是最大值,并且最接近某些终端仿真器中提供的“无限制”回滚历史记录。
  • 通过调整窗口大小来暂时解决这个问题。如果您将其设置得更高,缓冲区高度会自动增加到新窗口高度,但当窗口变短时,缓冲区高度不会缩小。因此,您可以将其设置得更高,然后将其变短以获得滚动条。

至于为什么 ubuntu.exe 的行为不同,我不确定。似乎 wsl.exe 和其他人使用默认的 9001 行,但出于某种原因,ubuntu.exe 的回滚缓冲区尺寸与窗口尺寸相同。可能是默认配置中的一个错误。

答案2

您可能希望为“ubuntu.exe”创建快捷方式,并将默认值(见所附屏幕截图)修改为所需值。然后,使用之前创建和修改的快捷方式启动 WSL。

然后,将该快捷方式“固定”到 Windows 任务栏或“开始”菜单(单击鼠标右键):

在此处输入图片描述

在写这个答案的时候,创建了“ubuntu.exe”的快捷方式,该快捷方式的属性如下:

快捷选项和布局:

在此处输入图片描述

我建议看一下屏幕截图上带下划线的值:

  • 选项 - 命令历史记录 - 缓冲区大小:看起来这个设置与本机“cmd.exe”程序设置更相关,但是我建议增加默认值。
  • 布局 - 屏幕缓冲区大小 - 高度:这个可以启用/允许在指定的行数上来回滚动(比如 - 启用滚动条)。
  • 布局 - 窗口大小 - 宽度高度:自我解释的窗口大小,其中先前设置的“屏幕缓冲区大小 - 宽度”取决于此设置的“窗口大小 - 宽度”。

例如,这是 Windows 10 Enterprise 版本 1809、内部版本 17763.504 中“ubuntu.exe”的文件夹路径:

C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1804.2018.817.0_x64__79rhkp1fndgsc

相关内容