command+k是macos terminal真清屏操作,重置渲染缓冲区;vscode终端需用ctrl+k(macos为cmd+k)或自定义cmd+l绑定terminal.clear命令,clear、ctrl+l、reset等均无效。

Mac终端需要真正清空所有输出内容、连滚动缓冲区里的历史日志也一并抹除,不能只靠视觉遮盖或光标归位——否则滚轮一拉,满屏旧日志全回来。
原生Terminal应用中用Command+K彻底清屏
这是macOS系统级支持的真清屏操作,由Terminal.app主进程直接重置渲染缓冲区,不依赖Shell,也不触发ANSI序列。
1、确保当前焦点在Terminal窗口内(点击任意终端标签页);
2、按下 【Command + K】;
3、屏幕瞬间变空,向上滚动无法恢复任何历史内容——缓冲区已被清空,不是“盖住”。
注意:该快捷键在iTerm2中默认无效,需单独配置;若按了没反应,请确认未被输入法或第三方工具劫持键盘事件。
VSCode内置终端里一键清空全部历史
VSCode的终端和系统Terminal行为不同,clear/cls/Ctrl+L都只是假清屏,只有Ctrl+K能真正清除滚动缓冲区。
方法一:直接使用开箱即用快捷键
聚焦终端Tab → 按下 【Ctrl + K】(Windows/Linux)或 【Cmd + K】(macOS);
这一步操作起来很简单,直接触发VSCode主进程重置当前终端渲染缓冲区,npm start等后台进程完全不受影响。
方法二:自定义绑定到Command+L(仅限macOS用户)
打开快捷键设置:Cmd+K Cmd+S → 右上角点「+」→ 搜索 terminal.clear → 选中命令 → 录入 Command+L → 提示冲突时点「重映射」;
【注意:此绑定仅作用于VSCode终端,不影响Terminal.app或iTerm2,也不干扰你在zsh里用Ctrl+L做行内清屏的习惯】。
避免踩坑:哪些操作看似清屏实则无效
clear 命令:只发 \x1b[2J\x1b[H 序列,把光标推顶、用空行覆盖旧内容,滚轮一动全回来;
Ctrl+L(默认):VSCode里它绑的是「滚动到顶部」,不是清屏,按了等于白按;
reset 或 printf '\033c':可能让颜色错乱、光标失灵,甚至终端假死;
Command+L(macOS Terminal):这是「清上一行命令」,不是清屏,别混淆。











