使用技巧

高效查找文件

# 让 Claude/ChatGPT 高效查找文件

文件查找是 Claude/ChatGPT 里最容易浪费 token 的操作之一。一个不清楚的需求可能触发十几次 Glob / Grep,每次都要读几百个文件路径。

# 两种查找成本对比

# ❌ 高成本:全量搜索

你说:

“在项目里找处理用户登录的代码”

Claude/ChatGPT 会:

  1. Glob 找所有 *.ts, *.tsx, *.js → 可能几百个文件
  2. Grep “login” 关键字 → 可能几十个匹配
  3. 逐个 Read 看哪个是真的相关 → 每个 Read 几百行

总消耗:10K-30K token 只为了"找到文件"。

# ✅ 低成本:精确定位

你说:

“看一下 src/features/auth/api/login.ts”

Claude/ChatGPT 直接 Read 这一个文件。

总消耗:500-2000 token(仅文件本身)。

# 几种"帮 Claude 找"的技巧

# 1. 直接引用文件(最理想)

如果你已经知道文件路径,直接说全路径:

看一下 app/pages/admin/users.vue

或者用 Claude/ChatGPT 的 @file 语法:

@app/pages/admin/users.vue 这个页面怎么改成支持筛选

# 2. 目录级定位(不确定具体文件时)

如果只知道大概位置:

在 src/features/auth/ 下找登录相关的组件

Claude/ChatGPT 只需要 ls 这一个目录,而不是全仓库。

# 3. 按模块命名定位

如果项目有明确的模块命名约定:

找一下 [`UserProfile`, `UserSettings`] 这两个组件的实现

比 grep "UserProfile" 快(Claude 可以用 Go to Definition 或者直接文件名匹配)。

# 4. 不知道位置?先让 Claude/ChatGPT “建立心智”

复杂项目第一次协作时,先做一次 orientation:

先 `ls` 看一下项目根目录结构,然后重点看 src/ 和 server/ 两个目录的子目录,告诉我这个项目的主要模块布局。

让 Claude 有整体认知后,后续所有查找都基于这个心智,不用每次从零全量搜。

# 5. 用 .claude/CLAUDE.md 说明项目结构(一次投资,长期回报)

在项目根创建 CLAUDE.md,写几行:

## 项目结构

- `app/pages/` —— Nuxt 页面(admin 在 `app/pages/admin/`)
- `server/api/` —— API endpoints(admin 在 `server/api/admin/`)
- `server/plugins/` —— 启动时加载的 plugin(DB、Redis、scheduler)
- `server/utils/` —— 公共 helper

## 测试

- `bun test <path>` 运行单个 test 文件
- **不要** 跑 `bun install` / `bun run dev`(会破坏 .nuxt/ 权限)

Claude Code 每次启动自动读 CLAUDE.md,省去每次都要探索的成本。

# 反面例子

场景:用户想改一个按钮样式。

❌ 不好:

“把那个提交按钮改成蓝色”

Claude/ChatGPT 不知道哪个按钮。会:

  1. Grep “submit” 找所有按钮 → 50 个匹配
  2. Grep “button” → 200 个匹配
  3. 逐个 Read 看哪个是"提交"按钮

消耗 20K token 找到那个按钮,才开始改。

✅ 好:

“把 app/pages/signup.vue 里的注册按钮改成蓝色(现在是紫色的那个)”

Claude/ChatGPT 直接 Read 这一个文件,找到 button 改样式。

消耗 2K token 做完。

# 真实省 token 效果

在我们的测试里(基于 100 个常见 coding task 的平均值):

查找方式 平均 token 消耗
全量搜索(无提示) 15,000
目录级定位 3,000
直接文件路径 500

差 30 倍。