You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux命令行更新VS Code settings.json并保留格式与注释?

解决Linux命令行更新VS Code settings.json并保留注释、格式的方法

方法1:用sed做针对性单行替换(适合少量修改)

sed可以精准匹配目标配置项的行,只替换值部分,完全保留原有注释、条目顺序和格式。

比如要把editor.fontSize从14改成16,执行:

sed -i '/^ *"editor.fontSize":/s/: .*,/: 16,/' ~/.config/Code/User/settings.json
  • 解释:/^ *"editor.fontSize":/ 匹配以任意空格开头、包含目标键的行;s/: .*,/: 16,/ 把该行的值,部分替换成16,。

如果是字符串类型的值(比如主题),注意转义引号:

sed -i '/^ *"workbench.colorTheme":/s/: "[^"]*",/: "\"Dracula\",/"' ~/.config/Code/User/settings.json

方法2:用Python的commentjson库(适合批量/复杂修改)

commentjson是专门支持带注释JSON的工具,能完美解析并保留原有注释、条目顺序和格式,修改后写回也不会破坏结构。

  1. 先安装库:
pip install commentjson
  1. 写一个简单的修改脚本(比如update_vscode_settings.py):
import commentjson
import sys

# 接收参数:第一个是settings.json路径,第二个是要更新的键值对JSON字符串
settings_path = sys.argv[1]
updates = commentjson.loads(sys.argv[2])

# 读取配置,保留注释和原始顺序
with open(settings_path, 'r', encoding='utf-8') as f:
    data = commentjson.load(f, object_pairs_hook=commentjson.OrderedDict)

# 应用更新
for key, val in updates.items():
    data[key] = val

# 写回配置,保持原有缩进和格式
with open(settings_path, 'w', encoding='utf-8') as f:
    commentjson.dump(data, f, indent=4, ensure_ascii=False, sort_keys=False)
  1. 使用脚本批量修改:
python3 update_vscode_settings.py ~/.config/Code/User/settings.json '{"editor.fontSize": 16, "workbench.colorTheme": "Monokai", "editor.lineNumbers": "relative"}'

方法3:用awk做替换(类似sed,适合简单场景)

awk同样可以精准定位目标行并替换值,示例:
把editor.lineNumbers改成relative:

awk '/^ *"editor.lineNumbers":/ {sub(/: "[^"]*",/, ": \"relative\",")}1' ~/.config/Code/User/settings.json > temp.json && mv temp.json ~/.config/Code/User/settings.json
  • 解释:sub函数替换该行的目标值部分,1表示输出所有行,最后用临时文件覆盖原文件(避免sed -i可能的权限问题)。

注意事项

  • VS Code的settings.json默认路径是~/.config/Code/User/settings.json,Insiders版本路径为~/.config/Code - Insiders/User/settings.json。
  • 执行修改前建议先备份原文件:cp ~/.config/Code/User/settings.json ~/.config/Code/User/settings.json.bak

内容的提问来源于stack exchange,提问作者bayramkazik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 17:17:31