如何增加 Windows 命令行窗口中的输出缓冲区大小?

如何增加 Windows 命令行窗口中的输出缓冲区大小?

我在 Windows 10 的 WSL 中使用 xv6。运行make && make qemu-nox并立即退出 qemu 后,我需要检查 make 的输出。但 make 输出的大多数行都被删除了;只有输出突发末尾的几行被保留。我已将“命令提示符”属性对话框中的缓冲区大小从 50 更改为 500,但同样的问题仍然存在。有没有可行的方法可以增加命令窗口的输出缓冲区,以便我可以make && make qemu-nox从头开始检查输出?或者,如果输出确实被 qemu 或其他程序删除,我该如何防止这种删除?非常感谢。

答案1

特性->选项->命令历史->缓冲区大小是 Windows 控制台将记住的先前命令行的数量。要更改回滚缓冲区,您需要特性->布局->屏幕缓冲区大小->高度

由于这个默认值已经是一个相当大的数字(在我的系统上是 9001),所以更有可能是构建中的某些东西正在调用该clear命令(或将其等效的转义序列写入终端)。

作为可能的解决方法,请考虑:

使用tmux

也许这有点过分,但我的常规工作流程是使用tmux。它在某些发行版中默认安装,但如果没有,也很容易安装。据我所知,它的回滚缓冲区不会用命令clear(或其等效转义序列)清除。

运行它并使用其回滚功能:

  • 默认回滚缓冲区为 2000 行。如果您确实需要更多,请使用~/.tmux.conf以下行进行更改:
    set -g history-limit 10000
    
  • 跑步tmux
  • 运行构建
  • 要进入可以向后滚动的“复制模式”,请按Ctrl+ btmux“前缀”和弦),然后按[(我希望我的设置正确 - 我的设置略有不同)。
  • 然后Pg-Up根据需要
  • q将退出复印模式(或Ctrl+ C

管道至less

对于可能更快的解决方案,如果您选择不使用tmux(make && make qemu-nox) | less应该允许您将完整的构建捕获到可滚动less命令中。

重定向到文件

(make && make qemu-nox) &> buildlog.txt

&>也需要将 stderr 重定向到该文件。

重定向到文件,同时仍在屏幕上显示输出

((make && make qemu-nox) 2>&1) | tee buildlog.txt

相关内容