改 settings.json 更可靠,因GUI仅修改单一层级且隐藏隐式依赖(如未配 editor.defaultFormatter 时 formatOnSave 不生效),而 JSON 能直观呈现工作区>用户>默认的完整覆盖逻辑。

为什么改 settings.json 比点 UI 设置更可靠
VSCode 的 GUI 设置界面(Ctrl+,)看着方便,但容易漏掉隐式依赖和优先级冲突。比如你勾选了 editor.formatOnSave,但没配 [javascript] 对应的 editor.defaultFormatter,保存时照样不格式化——UI 里这个字段压根不显示,除非你手动切到 JSON 视图。
真正起作用的是 settings.json 的合并逻辑:工作区设置 > 用户设置 > 默认设置。GUI 操作只改其中一层,而 JSON 文件能一眼看清所有层级叠加结果。
- 打开命令面板(Ctrl+Shift+P),输入
Preferences: Open Settings (JSON)直接编辑 - 避免在
settings.json里写注释(JSON 标准不支持),用空行和分组注释代替 - 修改后不用重启,VSCode 会实时重载,但部分插件(如 C/C++ 扩展)需重新加载窗口(Ctrl+Shift+P →
Developer: Reload Window)
自动保存 + 格式化组合怎么配才不翻车
很多人开 files.autoSave 后发现代码莫名其妙被重排、引号全变双引号、甚至 import 顺序错乱——问题不在自动保存,而在格式化器没约束边界。
关键不是“开不开”,而是“什么时候、用谁、按什么规则格式”。例如 Prettier 默认对整个文件操作,但你可能只想格式化当前选中块;又或者 TypeScript 项目里,eslint --fix 和 prettier 冲突,导致保存时反复来回改。
-
"files.autoSave": "afterDelay"比onFocusChange更可控,延迟设为1000(毫秒)可防抖 - 禁用全局
editor.formatOnSave,改用语言专属配置,例如:"[typescript]": {"editor.formatOnSave": true} - 如果同时装了 ESLint 和 Prettier,必须在
.eslintrc.cjs里加prettier插件,并关掉 ESLint 的格式类规则(如quotes,semi)
行内聊天(Inline Chat)不是玩具,得配合上下文用
VSCode 的 Inline Chat 功能常被当成“AI 写代码按钮”,但实际效果取决于你给它的上下文质量。直接在空函数里点它,大概率生成一堆泛泛而谈的伪代码;而选中一段有明确输入/输出的逻辑块再提问,响应准确率明显提升。
它本质是把当前选中文本 + 光标所在文件的前 200 行 + 相关 import 声明打包发给模型。所以别指望它理解整个项目结构,也别让它解释你刚删掉的那几行——那些不在上下文里。
- 右键选中代码 →
Inline Chat: Ask,比 Ctrl+Shift+I 更精准 - 提问时带上动词:“重构这段为 async/await”、“加类型注解”、“写单元测试覆盖边界条件”
- 生成结果默认插入光标后,想替换原代码要手动剪切粘贴,没有“一键覆盖”选项
插件太多反而拖慢启动,怎么筛出真有用的
VSCode 启动慢,90% 源于插件。不是所有“高星插件”都适合你当前项目。比如前端开发装了 rust-analyzer,它会在后台扫描整个工作区找 Cargo.toml,找不到就报错,还持续占用 CPU。
插件分三类:语言支持类(如 ms-python.python)、工具链桥接类(如 ms-vscode.cpptools)、纯 UI 增强类(如 bradlc.vscode-tailwindcss)。前两类必要,第三类按需。
- 禁用所有插件 → 逐个启用,观察状态栏右下角是否出现新图标或提示(比如 C/C++ 扩展会显示
cpptools加载进度) - 用
Developer: Show Running Extensions查看每个插件的激活时间和内存占用 - 像
GitLens这种功能强大的插件,建议关掉gitlens.advanced.automations里非必需项(如自动刷新提交图谱)
最常被忽略的一点:VSCode 的“轻量”是相对的,它的性能敏感点不在代码行数,而在文件数量和插件激活范围。一个含 5000 个 .ts 文件的项目,哪怕只开一个文件,typescript-language-features 插件也会默默索引全部。这时候与其调参数,不如拆工作区、用 files.watcherExclude 排除 node_modules 和构建产物目录。


















