前几篇讲了 Cascade 面板和 Flow Mode,这篇深入讲一个看起来简单但实际很关键的技巧:@引用。
@引用是 Windsurf 的核心语法——通过 @ 把文件、代码片段、项目上下文传给 AI。用好 @ 引用,AI 的回答质量会有质的提升。
@File(引用单个文件)
@src/utils/auth.ts
解释这个文件的作用
@Folder(引用整个文件夹)
@src/components
列出这个目录下的所有组件
@Code(引用选中代码)
在编辑器中选中代码,按 Cmd+L(Mac)或 Ctrl+L(Windows),Windsurf 会自动把选中内容作为上下文。
@/(引用整个项目)
@/
这个项目的整体结构是什么?
AI 不是读心术。如果你只问"这个函数有问题吗?",AI 不知道你指的是哪个文件、哪个函数。
@引用的作用是:把上下文喂给 AI,让 AI 的回答基于你指定的代码,而不是瞎猜。
对比示例:
差的提问:
getUserInfo 函数有没有 bug?
AI 回答:"我需要看具体代码才能判断。"
好的提问:
@src/services/user.ts
getUserInfo 函数有没有 bug?如果有,修复它
AI 回答:分析代码 → 指出潜在问题 → 提供修复方案
@引用支持同时引用多个文件或文件夹,用空格分隔。
场景:检查两个文件之间的依赖关系
@src/api/users.ts @src/services/user.ts
这两个文件的类型定义一致吗?找出不一致的地方
场景:理解跨模块的数据流
@src/auth/login.ts @src/middleware/auth.ts @src/config/permissions.ts
用户登录后的权限检查流程是什么?代码有没有遗漏的边界情况?
@/ 可以引用整个项目,但要注意上下文窗口限制。
适合用 @/ 的场景:
不适合用 @/ 的场景:
实战技巧:
@/
这个项目是什么框架?有哪些主要模块?
AI 会返回项目的技术栈概览,帮你快速了解陌生项目。
用 Cmd+L / Ctrl+L 引用选中代码时,有几个技巧:
1. 选中有问题的部分,而不是整个文件
AI 的注意力是有限的。如果你选中整个 500 行的文件,AI 可能会忽略真正的问题所在。只选中关键部分,AI 的分析会更精准。
2. 配合明确的指令
(选中一段代码后按 Cmd+L)
这段代码的复杂度是 O(n) 还是 O(n²)?有优化空间吗?
3. 多次引用,逐步缩小范围
如果 AI 第一次的回答不够具体,可以选中更小的代码片段,再次提问。
在 Flow Mode 下,@引用的作用会被放大——AI 会基于你引用的上下文,规划一系列改动。
示例:重构一个模块
@src/api/users.ts @src/services/user.ts @src/types/user.ts
把用户相关的代码从 JavaScript 迁移到 TypeScript
AI 会:
错误 1:引用太多文件,AI 响应变慢
解决:只引用和问题相关的文件,不要一次性引用整个项目。
错误 2:引用路径错误,AI 找不到文件
解决:Windsurf 支持自动补全,输入 @ 后会列出可选的文件和文件夹。
错误 3:没有配合明确指令,AI 不知道要做什么
解决:引用之后,一定要加一个明确的指令,比如"解释""修复""重构"。
下期预告:Windsurf 配置深度定制——如何让 AI 更懂你的项目风格。
评论区