关闭语义高亮、Todo Tree 全文件扫描、Color Highlight 注释渲染及 Volar 接管模式,可显著缓解高亮卡顿、输入延迟与滚动卡顿,性能提升超30%。

高亮变卡、输入延迟、滚动卡顿——不是硬件不行,是 VSCode 在重负载项目里被插件和语义分析拖垮了。关掉几个配置项,性能能立刻回升 30% 以上。
关闭语义高亮(editor.semanticHighlighting.enabled)
语义高亮(Semantic Highlighting)会让 Pylance、Volar、TypeScript 语言服务实时分析类型、变量作用域、装饰器等,对中大型项目是明显负担。
- 默认开启,但多数人并不需要它来区分
self和普通变量——基础语法高亮已够用 - 在
settings.json中设为false后,Python/TS/Vue 文件打开速度和滚动流畅度提升最明显 - 若仍想保留部分语义能力,可单独关掉耗时模块:比如禁用
pylance.semanticTokens,但留着python.languageServer - 注意:
editor.semanticHighlighting.enabled: false会同时禁用所有语言的语义高亮,无法按语言开关
限制 Todo Tree 全文件扫描(todo-tree.general.scanWholeFile)
默认只扫注释区域,但一旦开了 scanWholeFile: true,它会在每个打开的文件里全文匹配正则,node_modules 或大 JSON 配置文件一加载就卡住 UI。
- 检查是否误启:搜索
todo-tree.general.scanWholeFile,确认值为false(默认值) - 如确需扫描非注释内容(如 README.md 中的 TODO),改用
todo-tree.filtering.includeGlobs精确限定范围,例如["**/README.md", "**/package.json"] - 避免写
**/*—— 这会让插件递归遍历整个工作区,哪怕你只打开了一个 .ts 文件
停用 Color Highlight 的注释颜色渲染(colorHighlight.showColorsInComment)
这个选项看着贴心,实际是性能黑洞:它要求插件对每行注释做正则扫描 + 颜色解析 + 色块渲染,尤其在带大量 CSS 注释的 Vue/SCSS 文件里,光标移动都发涩。
- 90% 的使用场景根本不需要注释里的颜色预览,关掉后几乎零感知,但 CPU 占用下降显著
- 设为
false即可,无需卸载插件 - 如果必须保留,至少确保
colorHighlight.languages不包含"javascript"或"typescript"—— JS 注释里混颜色是反模式,不该鼓励
Volar 启动慢?先关 takeOverMode 再排查
volar.takeOverMode 会让 Volar 接管所有 HTML/JS/TS 文件的语言服务,听起来全面,实则让 Vue 项目在打开非 .vue 文件时也触发完整 TS 服务初始化,内存暴涨、响应延迟。
- 仅在纯 Vue 3 项目且确认无其他语言服务冲突时才开;协作项目或混合技术栈建议保持
false - 关掉后,.vue 文件依然由 Volar 正常处理,只是 .ts/.js 文件回归 TS 官方语言服务,更稳
- 如果关了还是卡,检查
typescript.tsdk是否指向本地 node_modules,远程或全局 TS 版本会拖慢启动
真正影响性能的从来不是“开了什么”,而是“哪些本不该开的被默认打开了”。重负载项目里,每多一层语义分析、每多一次全文件扫描、每多一个接管式语言服务,都在悄悄吃掉你的响应时间——而这些,全藏在 settings.json 的几行布尔值里。



















