vscode 不提供清空“最近打开文件”列表的原生快捷键或命令,唯一可靠方式是手动或脚本修改 user-data 目录下的 workspace.json 文件中 "recentlyopened" 字段为空数组,且需先关闭 vscode。

VSCode 没有“一键清除最近打开文件历史”的原生快捷键
直接说结论:VSCode 本身不提供快捷键或命令来清空 recentlyOpened(即“最近打开的文件/文件夹”列表),这个列表由编辑器内部维护,也不暴露为可直接调用的命令。你搜 Clear recently opened 或按 Ctrl+Shift+P 输入类似关键词,结果为空。
手动清空需要修改 user-data 目录下的 workspace.json
VSCode 把最近打开记录存在用户数据目录的 workspace.json 文件里(不是设置文件 settings.json)。路径因系统而异:
- Windows:
%APPDATA%\Code\User\workspace.json - macOS:
~/Library/Application Support/Code/User/workspace.json - Linux:
~/.config/Code/User/workspace.json
该文件中有个字段叫 "recentlyOpened",是个数组,里面是对象列表,含 folderUri 和 fileUri。清空它只需把该字段值设为空数组:
"recentlyOpened": []
注意:必须先关闭 VSCode 再修改,否则重启后会被自动覆盖;改完保存,再启动即可生效。
用命令行 + 临时脚本快速完成(推荐)
手动删太麻烦?可以写个单行命令,配合 VSCode 关闭后运行。以 macOS/Linux 为例(Windows 可用 PowerShell 类似处理):
先确认 VSCode 已完全退出(Activity Monitor 或 ps aux | grep Code 检查无残留进程),然后执行:
sed -i '' 's/"recentlyOpened": \[[^]]*\]/"recentlyOpened": []/' ~/Library/Application\ Support/Code/User/workspace.json
Windows PowerShell 等效命令(需管理员权限慎用,建议用 VSCode 内置终端以普通用户运行):
(Get-Content "$env:APPDATA\Code\User\workspace.json") -replace '"recentlyOpened": \[[^]]*\]', '"recentlyOpened": []' | Set-Content "$env:APPDATA\Code\User\workspace.json"
常见坑:
-
workspace.json可能不存在(首次启动后才生成),别误删整个文件 - 正则匹配若遇到换行或嵌套结构可能失效,稳妥起见建议用 JSON 编辑器或
jq处理(如:jq '.recentlyOpened = []' workspace.json > tmp && mv tmp workspace.json) - 部分企业版或 Snap 安装的 VSCode 路径不同(如
~/.var/app/com.visualstudio.code/data/...),需先确认真实路径
为什么不能加个快捷键?扩展也做不到
VSCode 扩展 API 明确不开放对 recentlyOpened 的读写权限——这不是遗漏,而是设计限制。官方认为该数据属于“UI 状态”,不属于扩展可干预范畴。所有号称“Clear Recent Files”的扩展,实际只是清空侧边栏的“Open Editors”列表(即当前窗口已打开的标签页),和“最近打开”菜单(File → Open Recent)完全无关。
所以别信那些扩展描述,它们改不了 workspace.json,也没权限监听或拦截菜单渲染逻辑。真要自动化,只能走外部脚本+手动触发,没有更短路径。
记住:改 workspace.json 是唯一可靠方式,且每次操作前最好备份该文件——因为一旦格式写错,VSCode 启动时会静默忽略整个文件,导致自定义布局、折叠状态等丢失。











