Cursor 里的 @ 符号:给 AI 精准喂上下文
在 Cursor 对话框打 @ 会弹出 Files、Code、Docs、Web 等一串引用来源。用对 @ 决定了 AI 是照着你的代码改,还是凭空瞎猜。本文讲每个 @ 什么时候用、别一股脑全塞。

AI 答得准不准,一半功夫在你给它看了什么。Cursor 把这件事收进一个符号:在 Chat 或 Agent 的输入框里打 @,会弹出一串可引用的来源。选对了,它照着你指定的代码改;不选,它可能对着脑补的文件名一顿输出。这篇把常用的几个 @ 讲清楚,顺便说说什么时候别用。
常用的几个 @
打完 @ 菜单里能选的东西不少,日常真正高频的就这几类:
@Files/@Folders:直接点名某个文件或目录,让它只盯着这些看。改某个具体模块时最常用。@Code:引用某个函数或符号,比整文件更聚焦。@Docs:挂第三方库的官方文档。写不熟的框架时,让它按文档来,而不是按它记忆里可能过时的 API。@Web:临时联网查资料,适合查新版本改动、报错含义这种时效性问题。@Git:引用某次提交或改动,让它围绕 diff 讨论。
还有个 @Codebase,让它先在整个仓库里检索再回答,适合「这个功能在哪实现的」这类跨文件问题。
指定文件,比让它自己找靠谱
很多人习惯直接描述「改一下登录逻辑」,然后 AI 猜哪个文件是登录逻辑,猜错概率不低。与其让它满仓库瞎找,不如 @ 上那两三个相关文件。给的范围越明确,它越不容易改到不该动的地方。
这点在 Agent 模式下尤其重要,因为 Agent 会真的动手改文件、跑命令。先用 @Files 圈好边界再让它跑,出问题的面积小很多。Agent 怎么用见 Agent 模式入门。
别把上下文塞满
反过来,@ 也不是越多越好。一次塞十几个文件进去,模型注意力被稀释,反而抓不住重点,还烧更多额度。挑真正相关的给,是一种手艺。
一个实用习惯:先只 @ 最核心的一两个文件问,看它理解得对不对,不够再补。比一开始就 @Codebase 全量检索更快也更省。如果某些上下文你每次都要带,与其反复 @,不如写进项目规则,见 .cursor 目录与 Rules。想把整套对话流程练熟,看 日常使用教程。