设置文件与配置层级
找到用户、项目和系统设置,处理迁移、环境替换与例外字段。
Qwen Code 使用 settings.json 保存长期设置。大多数字段归入 general、ui、model、tools 等对象,proxy、plansDirectory 等仍是顶层键。
从低到高的配置来源
默认值 → System defaults → 用户 → 项目 → System → 环境变量 → CLI 参数,是官方给出的通用顺序。
该顺序不表示所有字段都逐层深合并。权限数组可能做并集,modelProviders 项目段会替换用户段,选中提供商的 generationConfig 是独立整套配置;详见模型解析。某些 operator-only 设置忽略工作区值。
| 文件 | 位置 |
|---|---|
| 用户 | ~/.qwen/settings.json |
| 项目 | 项目根目录 .qwen/settings.json |
| Linux 系统默认 / 系统覆盖 | /etc/qwen-code/system-defaults.json / settings.json |
| Windows 系统默认 / 系统覆盖 | C:\ProgramData\qwen-code\system-defaults.json / settings.json |
| macOS 系统默认 / 系统覆盖 | /Library/Application Support/QwenCode/system-defaults.json / settings.json |
表中系统覆盖 settings.json 与同一行 system-defaults.json 位于同目录。QWEN_CODE_SYSTEM_DEFAULTS_PATH、QWEN_CODE_SYSTEM_SETTINGS_PATH 可分别指定系统文件路径。
启用文件夹信任后,未信任项目不加载项目设置,见信任目录。
嵌套对象示例
{
"general": {
"vimMode": true
},
"output": {
"showTimestamps": true
},
"tools": {
"approvalMode": "default"
}
}这是启用 Vim、显示时间戳并选择人工审批的示例,不能把点路径直接当作通用 JSON 键写法。
普通字符串支持 $VAR_NAME 或 ${VAR_NAME} 环境替换;但 Linux executionSandbox 要求字面值,Web 品牌字段也有专门限制。敏感配置应按对应字段说明处理,而不是默认所有占位符都可用。
旧设置迁移
旧格式会先备份再迁移。以下 disable 字段改为 enable 并反转布尔值:
| 旧字段 | 当前字段 |
|---|---|
| disableAutoUpdate、disableUpdateNag | general.enableAutoUpdate |
| disableLoadingPhrases | ui.accessibility.enableLoadingPhrases |
| disableFuzzySearch | context.fileFiltering.enableFuzzySearch |
| disableCacheControl | model.generationConfig.enableCacheControl |
前两个更新开关只要任一旧值为 true,新 enableAutoUpdate 就为 false。不能把旧值原样复制到正向字段。
tools.allowed、tools.exclude、tools.core 不自动迁移;尤其 core 白名单没有完全等价的新字段,见工具注册与发现。