应配置语言专属设置:按Ctrl+Shift+P执行“Preferences: Configure Language Specific Settings”,选markdown,在JSON中添加"files.autoSave": "off",该设置优先级高于全局配置,使.md文件禁用自动保存而其他语言不受影响。

怎么给 Markdown 单独关掉自动保存
你全局开了 files.autoSave,但写 Markdown 时总被意外保存(比如预览还没调好就刷盘),这时候得用语言专属配置把它单独关掉。VS Code 的语言级设置优先级高于用户级,只要配了,.md 文件就完全不走全局规则。
- 按
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Windows/Linux),输入并选择Preferences: Configure Language Specific Settings - 在弹出列表里选
markdown - 在打开的 JSON 片段中加这一行:
"files.autoSave": "off" - 保存后,所有
.md文件立即生效 —— 其他语言(如typescript、python)不受影响
为什么 JavaScript 文件没按 afterDelay 保存
你设了全局 "files.autoSave": "afterDelay" 和 "files.autoSaveDelay": 1000,但改完 .js 文件切到终端却不保存?大概率是语言专属配置覆盖了它。很多前端项目模板或插件(比如 ESLint 插件初始化脚本)会悄悄往 .vscode/settings.json 里写 "[javascript]": { "files.autoSave": "off" }。
- 检查项目根目录下是否存在
.vscode/settings.json,搜"files.autoSave"或"[javascript]" - 如果存在,删掉对应 language block 里的
"files.autoSave"行,或明确改成"afterDelay" - 注意:语言块必须用方括号包裹,且 key 是小写字符串,比如
"[javascript]",不是"javascript"或"JS" - 改完不用重启 VS Code,焦点切回编辑器就会重新加载
能同时对 JSON 关闭、对 Python 开启延时保存吗
可以,而且推荐这么做。JSON 文件一旦格式错误(比如多逗号、少引号),自动保存可能直接破坏文件结构;而 Python 脚本修改频繁,适合 afterDelay 防丢内容。
- 打开命令面板,执行
Preferences: Configure Language Specific Settings - 先选
json,填入:"files.autoSave": "off" - 再选
python,填入:"files.autoSave": "afterDelay"和"files.autoSaveDelay": 800 - 这两组配置会分别写进同一个
settings.json的 language blocks 里,互不干扰 - 注意:language-specific 设置只影响该语言模式识别的文件(靠文件后缀和顶部
// @ts-check等提示判断),不会误判.py为javascript
语言专属配置失效的三个隐藏原因
明明写了 "[typescript]": { "files.autoSave": "onFocusChange" },但改完 .ts 还是不保存 —— 多半卡在这几个地方。
-
.vscode/settings.json里有更粗粒度的覆盖项,比如顶层写了"files.autoSave": "off",它会直接压制所有 language blocks - 当前文件没被正确识别为该语言:右下角状态栏显示的是
Plain Text而不是TypeScript,此时 language 配置根本不会加载;点一下状态栏语言名手动切换 - 插件干扰:Prettier 或 ESLint 启用了
editor.formatOnSave,但项目里缺.prettierrc或语法报错,VS Code 会静默放弃整个保存动作,看起来像“没反应”
语言专属配置本身很轻量,但它的生效链条比想象中长:文件识别 → 语言块匹配 → 全局设置未屏蔽 → 格式化插件不阻断。任一环断开,都会让配置变成摆设。











