应修改terminal.integrated.scrollback(非historybuffersize)为5000~10000,通过用户级settings.json添加该字段,保存后需关闭所有终端并新建才生效;设0或过大易致oom,clear/reset等命令会清空缓冲区。

直接改 terminal.integrated.historyBufferSize 就行,用户级 settings.json 里加一行,值设 3000–5000 最稳。 设太高(比如 >10000)终端滚动和搜索会明显变慢;设 0 不是“无限”,而是触发 OOM 风险,VSCode 可能假死。
怎么改才真正生效
必须改到用户设置(User Settings),不是工作区设置(Workspace Settings)。后者只对当前文件夹起作用,且容易被覆盖。
- 快捷键
Ctrl+,(Windows/Linux)或Cmd+,(macOS)打开设置 - 右上角点「Open Settings (JSON)」图标(就是那个 `{}`)
- 在 JSON 里加这行:
"terminal.integrated.historyBufferSize": 5000 - 保存后——关掉所有已打开的 Terminal 标签页,再新开一个。已存在的终端不会继承新配置
为什么改了还是看不到早期输出
不是配置没生效,而是输出过程本身清空或绕过了缓冲区:
- 执行过
clear、reset或printf '\033c':这些只是视觉重置,但 VSCode 渲染层会在单行超长(比如 base64、无换行路径)时主动丢弃整行可见性 - 运行过
htop、vim、less等 TUI 工具:退出时终端状态重置,历史全清 -
"terminal.integrated.wordWrap": false被手动关了:长行直接截断消失,不是折行
终端和调试控制台的行数限制是两套系统
别混淆 terminal.integrated.historyBufferSize 和 debug.console 相关配置。调试控制台(Debug Console)不走这个参数,它用的是独立渲染层:
- 它只响应
"debug.console.wordWrap": true(默认是false) -
editor.wordWrap对它完全无效 - 它也不支持按行数缓存历史,只保留最近表达式求值结果,无法回溯早期输出
真正要查几百行以上的日志,别硬扛终端缓冲区——重定向到文件最可靠:python script.py > output.log 2>&1,然后在 VSCode 里打开查看、搜索、折叠。缓冲区再大,也只是临时缓存,不是日志系统。











