最可靠的方式是关闭vscode后手动清空recentlyopened.json中的entries和workspaces数组——ui菜单仅清内存缓存,不删磁盘数据,且对工作区无效。

直接清空 VSCode 最近打开记录,最可靠的方式是关闭编辑器后手动编辑 recentlyOpened.json 文件——UI 上的“清除最近打开记录”只清界面,不删底层数据,且对工作区(.code-workspace)无效。
为什么“文件 → 清除最近打开记录”不管用
这个菜单项只会清空当前会话中缓存在内存里的最近文件列表,不影响磁盘上持久化的记录。重启 VSCode 后,“最近打开”里依然有旧项目,尤其是工作区条目根本不会出现这个菜单里。
- 它不修改
recentlyOpened.json,也不碰workspaces字段 - 已删除的项目路径仍保留在文件中,点击会报错
Unable to open 'xxx': File not found. - 多开 VSCode 实例时,该操作只影响触发它的那个窗口
手动清空 recentlyOpened.json 的正确步骤
这是唯一能同时清理文件和工作区历史的通用方法,适用于 Windows/macOS/Linux 所有平台。
- 必须先完全退出 VSCode:右键系统托盘图标选“退出”,macOS 还要确认 Dock 中进程已消失
- 定位文件:
Windows:%APPDATA%\Code\User\recentlyOpened.json
macOS:$HOME/Library/Application Support/Code/User/recentlyOpened.json
Linux:$HOME/.config/Code/User/recentlyOpened.json - 用文本编辑器打开,把
"entries"和"workspaces"两个数组都改成空数组:[],不要删字段名 - 保存文件,再启动 VSCode —— “打开最近”列表即为空
命令行一键覆盖(适合脚本或批量操作)
比手动编辑更高效,但前提是 VSCode 已退出,否则写入会被立即覆盖。
- macOS/Linux:
echo '{"entries":[],"workspaces":[]}' > "$HOME/Library/Application Support/Code/User/recentlyOpened.json" - Windows PowerShell:
Set-Content -Path "$env:APPDATA\Code\User\recentlyOpened.json" -Value '{"entries":[],"workspaces":[]}' - 执行前建议先备份:
cp recentlyOpened.json recentlyOpened.json.bak
想隐藏而非清空?禁用启动页显示即可
如果只是不想看到“最近打开”区域,但保留历史以便偶尔调用,改设置比删文件更安全:
- 打开设置(
Ctrl+,),搜索workbench.startupEditor,设为"none"或"welcomePage" - 顺手关掉
workbench.editor.reopenLastEditorOnStart(避免上次标签页自动恢复) - 注意:这不删除任何记录,
Cmd+R/Ctrl+R仍能唤出最近工作区列表
真正彻底清空的关键就两点:VSCode 必须完全退出,且 recentlyOpened.json 里的 entries 和 workspaces 都得清空——漏掉任一个,对应类型的记录就会残留。别信“点一下菜单就干净了”的直觉。











