无法修改VS Code设置:JSON配置文件异常问题
解决VS Code设置JSON的"unable to write into user settings"错误
你的这个问题其实是典型的JSON语法错误导致的,VS Code的用户设置文件settings.json要求必须是单一的顶级JSON对象,而你的配置写法违反了这个规则,同时还有一个小的语法细节错误。
错误分析
- 多个顶级键值对:你把
"highlight-matching-tag.styles"和"prettier.singleQuote"放在了第一个大括号外面,这在JSON里是不允许的——JSON根节点只能有一个对象(一对大括号)或者数组,不能有多个独立的顶级元素。 - 多余的尾逗号:第一个大括号里最后一项
"editor.formatOnSave": true,后面多了一个逗号,JSON里最后一个键值对不能带尾逗号,否则会被判定为语法错误。
修正后的完整配置
把所有配置项都放入同一个顶级大括号内,同时去掉多余的尾逗号,修正后的代码如下:
{ "window.zoomLevel": -1, "editor.fontSize": 26, "editor.tabSize": 1, "files.autoSave": "off", "editor.wordWrap": "on", "editor.formatOnPaste": true, "editor.formatOnSave": true, "highlight-matching-tag.styles": { "opening": { "left": { "custom": { "borderWidth": "0 0 0 5px", "borderStyle": "Solid", "borderColor": "Yellow", "borderRadius": "5px", "overviewRulerColor": "white" } }, "right": { "custom": { "borderWidth": "0 5px 0 0", "borderStyle": "Solid", "borderColor": "Yellow", "borderRadius": "5px", "overviewRulerColor": "white" } } } }, "prettier.singleQuote": true }
总结
你后来想到把所有配置移到第一个大括号内的思路完全正确,VS Code的用户设置文件本质就是一个JSON对象,所有插件和全局配置都要嵌套在这个顶级对象里。以后修改配置时,记得所有新的配置项都要添加到大括号内部,同时注意JSON的基础语法规则(比如键值对用逗号分隔但最后一项不能带逗号,字符串必须用双引号包裹等)。
内容的提问来源于stack exchange,提问作者oudwin




