Skip to main content

第 6 課:設定與設定

學習目標

完成本課程後,您將能夠:

  • 理解五種設定範圍
  • 建立和管理設定檔
  • 有效地設定常見設定
  • 使用環境變數
  • 為專案脈絡設定 CLAUDE.md
  • 使用 /config 互動式設定

先決條件

  • 完成第 1-5 課 - 核心操作和技能
  • 文字編輯器 - 用於編輯設定檔
  • 基本 JSON 知識 - 設定檔使用 JSON 格式

預估時間: 20 分鐘


設定範圍

Claude Code 支援多個設定範圍,允許您在不同層級自訂行為。

五種範圍(優先順序)

設定按此優先順序合併(較高優先順序覆蓋較低):

1. Managed(最低優先順序)

2. CLI Flags

3. User

4. Local

5. Project(最高優先順序)

1. Managed Settings

位置: 安裝目錄 用途: 預設值 可編輯: 否(由 Claude Code 管理) 包含: 開箱即用的基本設定

範例: 預設模型選擇、基本權限

2. CLI Flags

用途: 覆蓋單一工作階段的設定 優先順序: 覆蓋 managed 和 user 設定 用法: 命令列引數

範例:

claude --model claude-opus-4-5
claude --mode accept-edits
claude --max-tokens 100000

3. User Settings

位置:

  • Linux/macOS: ~/.config/claude-code/settings.json
  • Windows: %APPDATA%\\claude-code\\settings.json

用途: 個人偏好設定 適用於: 所有 Claude Code 工作階段(除非被覆蓋) 可編輯:

使用案例:

  • 偏好的模型
  • 預設權限模式
  • 個人 API 金鑰(如果需要)

4. Local Settings

位置: ./.claude/settings.json 用途: 儲存庫特定設定 適用於: 在此目錄啟動的工作階段 Git 追蹤: 是(通常)

使用案例:

  • 團隊共享專案設定
  • 專案特定工具偏好
  • 團隊權限預設值

5. Project Settings

位置: ./.claude-code/settings.json 用途: 目前專案設定 最高優先順序: 覆蓋所有其他範圍

使用案例:

  • 實驗特定設定
  • 臨時設定
  • 覆蓋團隊設定在本機

建立設定檔

方法 1:使用 /config(推薦)

建立設定檔最簡單的方法:

互動式設定:

You> /config

Claude 將引導您完成:

  • 建立適當的設定檔
  • 設定常見選項
  • 解釋每個設定

範例流程:

You> /config

Claude: 我將協助您設定 Claude Code。

您想設定哪個範圍?
1. User(適用於所有專案)
2. Local(適用於此儲存庫)
3. Project(適用於目前專案)

選擇一個數字 [1-3]: 2

Claude: 建立 .claude/settings.json...

您偏好的權限模式是什麼?
[1] Default(要求所有操作)
[2] Accept Edits(自動核准編輯)
[3] Don't Ask(自動核准大多數操作)

選擇 [1-3]: 1

Claude: 設定已儲存!

方法 2:手動建立

手動建立設定檔:

User settings 範例:

mkdir -p ~/.config/claude-code
nano ~/.config/claude-code/settings.json

基本設定範本:

{
"model": "claude-sonnet-4-5",
"permissionMode": "default",
"maxTokens": 200000,
"temperature": 0.7,
"permissions": {
"allowedOperations": [],
"deniedOperations": []
},
"mcpServers": {}
}

常見設定設定

模型選擇

選擇使用哪個 Claude 模型:

可用模型:

  • claude-opus-4-5 - 最強大,最昂貴
  • claude-sonnet-4-5 - 平衡效能和成本(預設)
  • claude-haiku-4-5 - 最快,最便宜

設定:

{
"model": "claude-sonnet-4-5"
}

何時使用每個:

  • Opus: 複雜推理、架構、關鍵功能
  • Sonnet: 大多數開發任務(推薦預設)
  • Haiku: 快速問題、簡單任務、成本敏感工作

權限模式

設定預設權限行為:

設定:

{
"permissionMode": "default"
}

選項:

  • default - 要求所有操作(對初學者安全)
  • accept-edits - 自動核准編輯
  • dont-ask - 自動核准大多數操作
  • bypass - 無提示(請小心使用)

Token 限制

控制最大脈絡大小:

設定:

{
"maxTokens": 200000
}

考量:

  • 較高限制 = 更多脈絡,更高成本
  • 較低限制 = 更快回應,更低成本
  • 預設通常是最適的

Temperature

控制回應隨機性(創造力):

設定:

{
"temperature": 0.7
}

範圍: 0.0 - 1.0

  • 0.0 - 0.3: 確定性,專注(適合程式碼產生)
  • 0.4 - 0.7: 平衡(推薦)
  • 0.8 - 1.0: 創造,多樣(適合腦力激盪)

MCP Servers

設定 MCP 整合(在第 7 課中詳細說明):

設定:

{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-github"]
}
}
}

語言設定(2.1.x 新增!)

設定 Claude 的回應語言。

設定:

{
"language": "japanese"
}

支援的語言: 任何 Claude 瞭解的語言(西班牙文、法文、德文、日文、中文等)

使用情況:

  • 非英文開發團隊
  • 本地化回應
  • 多語言文件

萬用字元權限(2.1.x 新增!)

使用萬用字元建立彈性的權限規則。

設定:

{
"permissions": {
"allowedOperations": [
"Bash(*)", // 所有 bash 指令
"Bash(npm *)", // 所有 npm 指令
"Bash(git *)", // 所有 git 指令
"Bash(* test)", // 以 "test" 結尾的指令
"Read(*.md)", // 所有 markdown 檔案
"Edit(src/*)" // src/ 中的所有檔案
]
}
}

完整的萬用字元模式,請參閱**第 20 課:2.1.x 進階功能**。

代理團隊設定(2.1.33 新增!)

設定代理團隊用於分割窗格協作。

teammateMode 設定:

{
"teammateMode": "tmux" // 或 "wezterm", "iterm2", "in-process"
}

agentTeams 設定:

{
"agentTeams": {
"fullstack": {
"name": "全端團隊",
"teammates": [
{
"name": "backend",
"agentType": "general-purpose",
"model": "claude-sonnet-4-5",
"systemPrompt": "你是一名後端開發人員。"
},
{
"name": "frontend",
"agentType": "general-purpose",
"model": "claude-sonnet-4-5",
"systemPrompt": "你是一名前端開發人員。"
}
]
}
}
}

完整的代理團隊指南,請參閱**第 18 課:代理團隊與隊友**。


環境變數

環境變數提供另一種設定 Claude Code 的方法。

常見環境變數

API Key:

export ANTHROPIC_API_KEY="your-api-key-here"

模型選擇:

export CLAUDE_MODEL="claude-sonnet-4-5"

設定目錄:

export CLAUDE_CONFIG_DIR="/custom/path"

權限模式:

export CLAUDE_PERMISSION_MODE="default"

設定環境變數

臨時(目前工作階段僅):

export CLAUDE_MODEL="claude-opus-4-5"
claude

永久(新增到 shell profile):

~/.bashrc 或 ~/.zshrc:

# Claude Code 設定
export ANTHROPIC_API_KEY="your-key"
export CLAUDE_MODEL="claude-sonnet-4-5"
export CLAUDE_PERMISSION_MODE="accept-edits"

然後重新載入:

source ~/.bashrc  # 或 source ~/.zshrc

專案脈絡的 CLAUDE.md

CLAUDE.md 提供專案特定脈絡,Claude 在跨工作階段中使用。

在 CLAUDE.md 中包含什麼

專案概覽:

# 專案名稱

專案的簡要描述。

架構:

## 架構

- Frontend:使用 TypeScript 的 React
- Backend:具有 Express 的 Node.js
- Database:PostgreSQL

慣例:

## 程式碼慣例

- 使用 TypeScript strict mode
- 遵循 Python 的 PEP 8
- 為所有新功能撰寫測試

重要檔案:

## 重要檔案

- `src/api/` - API 端點
- `src/models/` - 資料模型
- `tests/` - 測試檔案

建立 CLAUDE.md

方法 1:使用 /memory skill

You> /memory

方法 2:手動建立

nano CLAUDE.md

範例 CLAUDE.md

# E-Commerce Platform

具有庫存管理和支付處理的多租戶電子商務平台。

## 技術堆疊

- **Frontend:** Next.js 14、TypeScript、Tailwind CSS
- **Backend:** Node.js、Express、PostgreSQL
- **Auth:** JWT tokens、bcrypt

## 專案結構

src/ ├── api/ # API 路由和控制器 ├── models/ # 資料模型 ├── services/ # 業務邏輯 └── middleware/ # Express 中間件


## 程式碼慣例

- 對於 async/await 進行非同步操作
- 使用 try-catch 處理錯誤
- 記錄重要操作
- 為函式撰寫 JSDoc 註解
- 遵循 ESLint 規則

## 重要注意事項

- 不要硬編碼 API 金鑰(使用環境變數)
- 所有資料庫查詢必須使用參數化陳述
- 始終驗證使用者輸入
- 在 Stripe 測試模式中測試支付功能

## 開發指令

```bash
npm run dev # 啟動開發伺服器
npm run test # 執行測試
npm run build # 建置生產環境
npm run lint # 檢查程式碼品質

### CLAUDE.md 的優點

Claude 使用此脈絡來:
- 理解您的專案結構
- 遵循您的編碼慣例
- 知道重要的檔案和位置
- 建議適當的解決方案
- 產生一致的程式碼

---

## 實務範例:設定專案設定

讓我們為真實專案設定。

### 步驟 1:導覽至專案

```bash
cd ~/claude-test/hello-world

步驟 2:建立 Local Settings

mkdir -p .claude

建立 .claude/settings.json

{
"model": "claude-sonnet-4-5",
"permissionMode": "default",
"temperature": 0.5,
"permissions": {
"allowedPatterns": [
{"pattern": "^hello.py$", "operation": "Read"}
]
}
}

這設定:

  • 使用 Sonnet 模型
  • 要求權限(安全)
  • 更低溫度(更確定性)
  • 自動允許讀取 hello.py

步驟 3:建立 CLAUDE.md

建立 CLAUDE.md

# Hello World 專案

用於學習 Claude Code 基礎的學習專案。

## 目的

此專案用於練習:
- 基本檔案操作
- 理解權限
- 使用技能
- 設定

## 檔案

- `hello.py` - 主要問候腳本

## 目標

- 保持簡單
- 專注於學習
- 自由實驗

步驟 4:測試設定

claude
You> 這個專案是關於什麼的?

Claude: [使用 CLAUDE.md 中的脈絡]
這是一個 Hello World 學習專案,用於練習 Claude Code 基礎,包括
基本檔案操作、權限和技能。

✅ 檢查您的理解

  1. 哪個設定範圍具有最高優先順序?

    • Managed
    • User
    • Local
    • Project
  2. 什麼指令幫助建立設定檔?

    • /settings
    • /config
    • /setup
    • /configure
  3. User settings 在 Linux/macOS 上的儲存位置?

    • ~/claude/settings.json
    • ~/.config/claude-code/settings.json
    • ~/.claude/settings.json
    • /etc/claude/settings.json
  4. True 或 False: 環境變數覆蓋設定檔。

    • True
    • False
  5. CLAUDE.md 用於什麼?

    • 儲存 API 金鑰
    • Claude 的專案特定脈絡
    • 列出專案中的所有檔案
    • 設定 MCP 伺服器

答案: 1-d, 2-b, 3-b, 4-True, 5-b


總結

在本課程中,您學到了:

  • 五種設定範圍 - Managed、CLI、User、Local、Project
  • 建立設定 - 使用 /config 或手動建立檔案
  • 常見設定 - 模型、權限、tokens、溫度
  • 環境變數 - 覆蓋組態的環境變數
  • CLAUDE.md - 為 Claude 提供專案脈絡
  • 設定優先順序 - 理解合併順序

下一步

在**第 7 課:MCP 整合**中,您將學到:

  • 什麼是 MCP
  • MCP 伺服器類型
  • 新增 MCP 伺服器
  • 常見整合
  • 在對話中使用 MCP 工具

進階閱讀


繼續至第 7 課:MCP 整合