2025年5月15日 作者 D.Sheep 0

Claude Code 设置

了解如何通过全局和项目级设置、主题以及环境变量,配置 Claude Code 以满足你的需求。

Claude Code 提供多种设置选项,你可以通过在终端运行 claude config 或在交互 REPL 中使用 /config 命令进行配置。


配置层级

全新的 settings.json 文件是官方推荐的分层配置机制。

  • 用户设置:保存在 ~/.claude/settings.json,对所有项目生效。
  • 项目设置
    • 共享项目设置保存在项目目录下的 .claude/settings.json
    • 本地项目设置保存在 .claude/settings.local.json,仅对当前用户生效。Claude Code 会自动配置 git 忽略本地设置文件。
  • 企业部署:支持企业级策略设置,优先级最高。管理员可将策略文件部署至 macOS 的 /Library/Application Support/ClaudeCode/policies.json 或 Linux/Windows(WSL)的 /etc/claude-code/policies.json。

示例 settings.json:

{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

设置优先级

设置的生效顺序如下(后者覆盖前者):

  1. 用户设置
  2. 项目共享设置
  3. 本地项目设置
  4. 命令行参数
  5. 企业策略

配置选项

Claude Code 支持全局和项目级别的配置。

常用命令:

  • 列出设置:claude config list
  • 查看设置:claude config get <key>
  • 更改设置:claude config set <key> <value>
  • 向列表型设置添加:claude config add <key> <value>
  • 从列表型设置移除:claude config remove <key> <value>

默认操作作用于当前项目配置。如需管理全局配置,加 –global 或 -g。


全局配置

设置全局参数(加 -g):

说明
autoUpdaterStatusdisabled 或 enabled启用或禁用自动更新器(默认启用)
envJSON(如 {“FOO”: “bar”})应用于每个会话的环境变量
preferredNotifChanneliterm2, iterm2_with_bell, terminal_bell, notifications_disabled通知方式(默认 iterm2)
themedark, light, light-daltonized, dark-daltonized主题模式
verbosetrue 或 false是否显示完整 bash 和命令输出(默认 false)

项目配置

项目级配置不用 -g:

说明
allowedTools工具数组哪些工具可无需手动批准运行
ignorePatterns文件/目录模式数组工具运行时忽略哪些文件/目录

示例:

# 允许 npm test 命令自动运行
claude config add allowedTools "Bash(npm test)"

# 允许 npm test 及其子命令自动运行
claude config add allowedTools "Bash(npm test:*)"

# 忽略 node_modules 目录
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

权限管理

可用 /allowed-tools 管理 Claude Code 工具权限。该界面会列出所有权限规则及其来源 settings.json 文件。

  • Allow 规则:允许无需手动批准地使用指定工具
  • Deny 规则:阻止使用指定工具,优先级高于 allow
  • 权限规则格式为:Tool(可选限定符)

示例规则:

规则描述
Bash(npm run build)匹配精确的 Bash 命令 npm run build
Bash(npm run test:*)匹配以 npm run test 开头的 Bash 命令
Edit(~/.zshrc)匹配 ~/.zshrc 文件
Read(node_modules/**)匹配任意 node_modules 目录
mcp__puppeteer__puppeteer_navigate匹配 puppeteer MCP 的 puppeteer_navigate 工具
WebFetch(domain:example.com)允许抓取 example.com 的请求

注意,Bash 规则可以精确匹配或以 :* 结尾作为前缀匹配。Read/Edit 规则遵循 gitignore 规范。// 表绝对路径,~/ 表主目录路径。例如:Read(//tmp/build_cache) 或 Edit(~/.zshrc)。


自动更新器权限选项

如检测到无权限写入全局 npm 目录(自动更新所需),会出现提示。详细解决方案请见疑难解答指南。

推荐:新建用户可写的 npm prefix:

# 备份现有全局包
npm list -g --depth=0 > ~/npm-global-packages.txt

# 创建全局包目录
mkdir -p ~/.npm-global

# 配置 npm 前缀为新路径
npm config set prefix ~/.npm-global

# 添加到 PATH(根据你的 shell 文件修改)
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 重新全局安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 可选:重新安装你需要的全局包
# 参考 ~/npm-global-packages.txt

推荐理由:

  • 避免修改系统目录权限
  • 为全局 npm 包创建独立目录
  • 更安全

禁用自动更新器:

claude config set -g autoUpdaterStatus disabled

优化终端设置

Claude Code 建议你的终端配置良好,体验最佳。

支持的 shell:

  • Bash
  • Zsh
  • Fish

主题与外观

Claude 无法控制你的终端主题,该设置由终端应用决定。你可在 Claude Code 入门或随时通过 /config 命令调整主题以匹配你的终端。


换行输入

多行输入方式:

  • 输入 \ 后回车快速换行
  • Option+Enter(需正确配置)或 Shift+Enter(iTerm2/VSCode 推荐)

设置方法:

  • Mac Terminal.app:设置 > Profiles > Keyboard > 勾选“Use Option as Meta Key”
  • iTerm2/VSCode 终端:设置 > Profiles > Keys > General 下将 Option 设为“Esc+”
  • 建议 iTerm2/VSCode 用户在 Claude Code 内运行 /terminal-setup 自动配置 Shift+Enter

通知设置

任务完成时获得提醒:

  • 终端铃声提醒:
claude config set --global preferredNotifChannel terminal_bell
  • macOS 用户请在系统设置 > 通知 > [你的终端应用] 启用通知权限。
  • iTerm2 系统通知:
    • 打开 iTerm2 偏好设置 > Profiles > Terminal
    • 启用 “Silence bell” 和 “Send notification when idle”
    • 设置你想要的通知延时
    • 注意:该通知仅 iTerm2 支持,macOS 默认终端不支持

处理大输入内容

  • 避免直接粘贴超长内容,Claude 可能处理困难
  • 建议把内容写入文件,让 Claude 读取
  • 注意 VS Code 终端对长文本粘贴有限制,易被截断

Vim 模式

Claude Code 支持 Vim 子集快捷键,可用 /vim 或 /config 启用。

支持内容包括:

  • 模式切换:Esc(NORMAL),i/I, a/A, o/O(INSERT)
  • 导航:h/j/k/l, w/e/b, 0/$/^, gg/G
  • 编辑:x, dw/de/db/dd/D, cw/ce/cb/cc/C, .(重复)

环境变量

Claude Code 支持以下环境变量控制其行为:

变量名用途
DISABLE_AUTOUPDATER设为 1 禁用自动更新
DISABLE_BUG_COMMAND设为 1 禁用 /bug 命令
DISABLE_COST_WARNINGS设为 1 禁用花费警告
DISABLE_ERROR_REPORTING设为 1 退出 Sentry 错误上报
DISABLE_TELEMETRY设为 1 退出 Statsig 统计
HTTP_PROXY指定 HTTP 代理服务器
HTTPS_PROXY指定 HTTPS 代理服务器
MCP_TIMEOUTMCP 服务器启动超时(毫秒)
MCP_TOOL_TIMEOUTMCP 工具执行超时(毫秒)