local-history插件卡顿的根源是history目录未被排除监听且无限堆积:需配置"local-history.daysLimit": 7和"files.watcherExclude": {"/history/": true},并手动清理旧文件。

local-history 插件本身不卡,但默认配置会让它在后台疯狂写文件、扫目录、堆积历史——不调 local-history.daysLimit 和 files.watcherExclude,用两周后打开资源管理器都会卡顿。
为什么 history 文件夹一多就变慢
local-history 默认每 30 秒自动保存一次当前文件快照,全量写入 history/ 目录;如果项目里有频繁修改的配置文件、日志片段或生成代码,每天可能产生上百个历史文件。VSCode 的文件监视器(chokidar)会持续扫描整个工作区,包括 history/ 目录——一旦该目录下文件数超 2000,files.watcherExclude 没配好,就会拖慢所有扩展的响应,连右键菜单都延迟。
- 历史文件不是“只读存档”,插件每次刷新侧边栏都要遍历
history/下所有子目录和 JSON 元数据 - 默认不限制保留天数,旧文件永远不删,
history/目录体积滚雪球式增长 - 如果
history/被建在项目根目录下,且没被files.watcherExclude排除,VSCode 会把它当普通源码目录反复索引
必须改的两个配置项
这两项不写进 .vscode/settings.json 或用户设置,优化就等于没做:
-
"local-history.daysLimit": 7—— 设为 7 天足够覆盖日常回溯需求,超过自动清理;设为0表示禁用自动清理(不推荐) -
"files.watcherExclude": {"**/history/**": true}—— 这行必须加,否则 VSCode 会持续监听 history 目录下的每个新建/删除事件,触发无意义重绘
注意:**/history/** 中的双星号和结尾斜杠不能省,否则匹配不生效;如果自定义了路径(如 local-history.path 设为 $[workspaceFolder]/.hist),对应排除项也要改成 "**/.hist/**": true。
手动清理残留 + 避免误操作
已堆积的历史文件不会因改配置自动删除,需主动干预:
- 关闭 VSCode(确保后台进程完全退出)
- 进项目根目录,删除整个
history/文件夹(或你自定义的路径) - 重启 VSCode,插件会从零开始记录,且后续严格按
daysLimit控制生命周期 - 别把
history/加进.gitignore就完事——git 忽略不影响 VSCode 监听,仍要靠files.watcherExclude
真正影响性能的从来不是“有没有历史”,而是“有没有让历史安静待着”。只要 history/ 不被监听、不无限堆积、不混在 src 或 node_modules 同级,它就只是个透明的备份箱——你几乎感觉不到它的存在。











