Ctrl+K(Windows/Linux)或Cmd+K(macOS)是VSCode真正清屏的快捷键,可彻底清空可视区与滚动缓冲区,光标归首行、历史不可滚动,且不中断正在运行的进程。

Ctrl+K(Windows/Linux)或 Cmd+K(macOS)是真正清屏的快捷键
这不是“看起来清了”,而是把当前终端面板的可视区和滚动缓冲区一起清空——往上滚鼠标再也看不到旧输出,光标回到首行,所有正在运行的进程(node、python、tail -f)完全不受影响。
常见错误现象:clear 或 cls 后还能滚动查看历史;Ctrl+L 在 VSCode 里默认绑定的是「滚动到顶部」,按了没反应或只闪一下;reset 可能让颜色错乱、退格键失灵,尤其在 WSL 或 PowerShell 中容易卡住。
-
Ctrl+K是 VSCode 自己接管的命令,和 shell 类型无关,bash/zsh/powershell/cmd全部适用 - 终端卡死时可能失效:先按
Ctrl+C中断当前任务,再试Ctrl+K - 多个终端 tab 时,只对当前激活的那个生效,必须先点进去再按
Terminal: Clear 命令是跨平台兜底方案
当你发现 Ctrl+K 失效(比如 Windows 输入法劫持组合键、iPadOS 蓝牙键盘无 Ctrl 键),直接调命令面板最可靠:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
Terminal: Clear,回车执行 - 该命令由 VSCode 主进程直接控制终端实例,不走 shell 解析,兼容性最强
注意:Terminal: Clear 和 Terminal: Clear Scrollback 不同——后者会强制丢弃所有已缓冲的历史行(包括尚未滚动到的数千行日志),适合终端明显变慢、输入延迟时用。
想用 Ctrl+L 清屏?可以,但得手动绑定
VSCode 默认把 Ctrl+L 绑给「滚动到顶部」,但它在终端里基本没用(bash/zsh 的行内 Ctrl+L 在 VSCode 终端里也不触发),所以覆盖几乎无副作用。
- 打开快捷键设置:
Ctrl+K Ctrl+S(Windows/Linux)或Cmd+K Cmd+S(macOS) - 右上角点「+」→ 命令栏搜
workbench.action.terminal.clear→ 选中它 - 按下
Ctrl+L(或Cmd+L)作为新快捷键 → 提示冲突时点「替换」
这个绑定只作用于 VSCode 内置终端,不影响系统原生 Terminal.app 或 iTerm2;也不影响你本地 shell 的 Ctrl+L 行编辑行为——因为 VSCode 已接管该键位。
clear / cls / reset 都不是真正清屏
clear 和 cls 只是发 ANSI 序列 \x1b[2J\x1b[H,xterm.js 渲染器只重绘视口,不碰滚动缓冲区。结果就是:光标回顶,但旧输出还在内存里,滚轮一拉全回来。
-
reset更危险:尝试重置终端状态,在 VSCode 里常导致光标异常、颜色丢失,甚至卡住 -
printf '\033c'或echo -e "\033c"在 WSL 下可能失效或丢颜色 - 别在
.bashrc里 aliascls='printf "\033c"'—— xterm.js 对全屏重置序列支持不稳定,经常没反应
真正清掉历史,靠的是 VSCode 对终端实例的控制权,不是你敲什么命令。终端跑久了(比如 tail -f 几千行日志),缓冲区吃内存很快,这时候关掉 tab 重开一个,比反复清屏更实际。


















