如何让VSCode中files.autoSave: onFocusChange设置永久生效?
VSCode中
files.autoSave配置自动消失,如何永久生效? 我在VSCode的settings.json文件中添加了如下配置:
{ // ... "files.autoSave": "onFocusChange", // ... }
但每月会出现1-2次该配置项自动消失的情况,不得不手动重新添加。
当前环境信息
完整settings.json内容
{ "workbench.colorTheme": "Default Dark Modern", "security.workspace.trust.untrustedFiles": "open", "remote.SSH.configFile": "C:\\cygwin64\\home\\hans\\.ssh\\ssh_config.ext", "security.workspace.trust.enabled": false, "security.allowedUNCHosts": [ "wsl.localhost" ], "window.zoomLevel": 1, "github.copilot.enable": { "*": true, "plaintext": true, "markdown": false, "scminput": false }, "[php]": { "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" }, "[c]": { "editor.defaultFormatter": "ms-vscode.cpptools" }, "editor.largeFileOptimizations": false, "window.menuBarVisibility": "compact", "files.autoSaveDelay": 1, "files.autoSave": "onFocusChange", "workbench.settings.applyToAllProfiles": [], "chat.agent.enabled": true, "mcp": { "servers": { "mcp-server-time": { "command": "python", "args": [ "-m", "mcp_server_time", "--local-timezone=Europe/Oslo" ], "env": {} } } } }
已安装扩展(执行code --list-extensions --show-versions输出)
automatalabs.copilot-mcp@0.0.58 bmewburn.vscode-intelephense-client@1.14.4 docker.docker@0.11.0 eamodio.gitlens@17.2.2 github.copilot@1.338.0 github.copilot-chat@0.28.5 mechatroner.rainbow-csv@3.20.0 ms-azuretools.vscode-containers@2.0.3 ms-azuretools.vscode-docker@2.0.0 ms-python.debugpy@2025.8.0 ms-python.python@2025.8.0 ms-python.vscode-pylance@2025.6.2 ms-vscode.cmake-tools@1.20.53 ms-vscode.cpptools@1.26.3 ms-vscode.cpptools-extension-pack@1.3.1 ms-vscode.cpptools-themes@2.0.0 ms-vscode.hexeditor@1.11.1 ryu1kn.partial-diff@1.4.3 tobias-faller.vt100-syntax-highlighting@1.1.0 twxs.cmake@0.0.17 xdebug.php-debug@1.36.1
VSCode版本信息
Version: 1.101.2 (system setup) Commit: 2901c5ac6db8a986a5666c3af51ff804d05af0d4 Date: 2025-06-24T20:27:15.391Z Electron: 35.5.1 ElectronBuildId: 11727614 Chromium: 134.0.6998.205 Node.js: 22.15.1 V8: 13.4.114.21-electron.0 OS: Windows_NT x64 10.0.19045
搜索结果
在~/.vscode-server目录执行grep -rl files.autoSave的输出
extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.fr.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.it.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.es.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.ko.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.pl.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.ru.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.de.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.ja.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.cs.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.tr.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.zh-tw.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.pt-br.json extensions/ms-vscode.cpptools-1.26.3-linux-x64/package.nls.zh-cn.json bin/2901c5ac6db8a986a5666c3af51ff804d05af0d4/product.json bin/2901c5ac6db8a986a5666c3af51ff804d05af0d4/out/nls.messages.json bin/2901c5ac6db8a986a5666c3af51ff804d05af0d4/out/vs/platform/terminal/node/ptyHostMain.js bin/2901c5ac6db8a986a5666c3af51ff804d05af0d4/out/vs/workbench/api/node/extensionHostProcess.js bin/2901c5ac6db8a986a5666c3af51ff804d05af0d4/out/server-main.js data/CachedProfilesData/__default__profile__/extensions.user.cache data/User/History/341f20ad/wbmG.json data/User/History/341f20ad/04Q2.json data/User/History/341f20ad/uBlM.json data/User/History/2553a248/ghBj.json data/User/History/2553a248/DOmj.json data/User/History/2553a248/0rMH.json data/User/History/2553a248/yQIS.json data/User/History/2553a248/T01q.json data/User/History/2553a248/EAUh.json data/User/History/2553a248/k0Pn.json data/User/History/2553a248/YaTQ.json data/User/History/2553a248/987o.json data/User/History/2553a248/0llH.json data/User/History/2553a248/51WG.json data/User/History/2553a248/tFuq.json data/User/History/2553a248/rFDq.json data/User/History/2553a248/iEfF.json data/User/History/2553a248/Z1fs.json data/User/History/2553a248/UXKt.json data/User/History/2553a248/f9Nb.json data/User/globalStorage/github.copilot-chat/settingEmbeddings.json
在~/.vscode-server目录执行grep -rl toggleAutoSave的输出
data/User/globalStorage/github.copilot-chat/commandEmbeddings.json
补充信息
- 设置同步已禁用
- 问题已出现约5-6次
解决方案尝试
1. 锁定配置文件权限
找到settings.json所在位置(Windows系统通常为%APPDATA%\Code\User\settings.json),右键文件→属性→安全→编辑,将当前用户权限设置为只读,阻止程序自动修改配置。需要调整其他配置时,临时取消只读权限即可。
2. 排查扩展干扰
- 临时禁用所有扩展,观察1-2个月是否还会出现配置消失的情况。若问题消失,逐个启用扩展,定位到触发问题的扩展后卸载或更新。
- 重点关注Copilot相关扩展(搜索结果显示Copilot Chat的文件涉及
toggleAutoSave),可先禁用Copilot Chat进行测试。
3. 用工作区配置覆盖全局配置
在常用工作区的.vscode/settings.json中添加"files.autoSave": "onFocusChange",工作区配置优先级高于全局配置,即使全局配置被修改,工作区配置依然生效。
4. 修复配置文件异常
- 备份当前
settings.json,删除原文件后重启VSCode,让程序自动生成新配置文件,再手动添加files.autoSave项。 - 清理
~/.vscode-server/data/User/History下的配置历史文件,避免历史数据干扰。
5. 调整VSCode版本
当前使用的1.101.2版本尝试升级到最新稳定版,或回退到之前的版本,排查是否为版本bug导致的配置丢失。
内容的提问来源于stack exchange,提问作者hanshenrik
相关产品推荐
相关产品推荐

