Cursor 用顺手了是真省事,可它抽起风来也是真让人想砸键盘。
前几篇我写了怎么让 Agent 接活、怎么给没测试的老项目兜底,这篇专门讲它不干正事的时候:Tab 死活不弹、Agent 收不住手、转圈转半天、额度掉得比平时快。这些毛病我这一年基本都踩过,看着五花八门,其实多半能归到几类固定原因。
我按「症状 → 大概率原因 → 怎么处理」整理,你对号入座就行。
先交代一句:Cursor 的菜单、快捷键、模型名、套餐档位各个版本变动挺频繁,下面凡是涉及具体在哪点、叫什么,以你当前版本和官方当期文档/界面为准;排查思路不变。
一、补全和对话失灵:Tab 不弹、Cmd+K 没反应、一直转圈
这类最常见,也最容易让人以为是自己项目坏了。
症状一:Tab 补全突然不弹,或者时灵时不灵。
按这个顺序查:
- 当前选的模型支不支持内联补全。有些模型只在对话里能用,不产灰字补全,切回支持补全的模型立刻就好(模型列表以当期界面为准)。
- 补全开关有没有被关掉。设置里那几个补全相关开关,更新后、误触后都可能变。
- 文件是不是太大、是不是没保存进项目。单个文件几千行,或者是没保存的临时页、项目外的文件,补全都会明显变弱。先存成项目内的正常文件,大文件拆开。
症状二:Cmd+K、Cmd+L 按了没反应,或者输入完不出东西。
- 先看是不是输入法或别的软件把快捷键截走了。切到英文输入法再按一次,能复现就去查快捷键冲突。
- 输入完没反应、一直转圈,多半是请求没发出去或没回来,直接看第四节网络那部分。
症状三:一直转圈、半天不出结果。
- 小文件、简单问题也转圈,优先怀疑网络和账号;只有这个大项目转圈,优先怀疑项目和上下文。
- 一个很快的判断办法:新建一个普通小文件,敲一行最常见的代码,看灰字出不出。小文件也不出------模型、网络、账号三选一;小文件正常、大文件不行------是文件体积或上下文撑爆了。
二、Agent 干活类:乱碰文件、越改越崩、说改了其实没改
这类毛病的代价最大,因为它会真的动你的代码。
乱碰不该碰的文件。 根因基本是三个:没给它划可动范围、没把禁碰区写进规则、任务太大它开始自由发挥。处理办法我在前面那篇 Agent 多文件改造里讲得很细,核心就一句:动手前先讲清「能碰哪些文件、哪些绝对不许动」,任务拆小,尽量开干净会话。
越改越崩,改出新问题。 几乎都是「一次让它改太多」。一次跨五六个文件、连改带重构,它前面理解偏一点,后面全歪。我的做法是小步走:每改一块就看 diff,确认没问题再接受下一块,并且在让它动手前,先在版本控制里留一个干净的点,随时能退回去。
它说改好了,文件里根本没变,或者 diff 没应用上。 这种最有迷惑性,通常是下面几种:
- 生成中途断了、超长被截断,改动没写完;
- diff 面板里还躺着待接受的块,你没点接受;
- 你无意中点了拒绝;
- 它分了多个文件改,你只看了当前这一个。
处理:先去 diff 面板确认有没有待接受的内容;改动量太大就让它按文件、按批次来,别让它一口气输出一大坨;接受前把整段 diff 看完,别盲点。
它说命令跑过了、测试通过了,其实根本没跑。 多半是终端在等你点确认,或者权限没给,它自己没执行成功。看第五节终端部分。
三、上下文和失忆:越聊越笨、@ 没生效、规则不读
长对话越聊越笨,忘了你一开始定的约定。 上下文窗口有上限,聊得太长,早期内容被挤掉,它自然就「失忆」。记住三条:
- 一个任务一个会话,别一个对话窗口从头用到尾;
- 聊长了就开新会话,把关键结论重述一遍再继续;
- 不变的规矩写进项目规则文件,别只在对话里说------对话里说的会被忘,写在文件里的它每次都能读。
@ 引用了文件,它好像没读。 检查几点:@ 之后下拉里有没有真的选中那个文件(光打字没选等于没 @);路径有没有问题;是不是一口气 @ 了几十个文件,关键的反而被淹没。最关键的文件,直接把内容贴给它比 @ 更稳。
规则写了等于没写。 要么规则文件没放对位置、当前项目没加载到;要么规则写得太虚,全是「要写好代码」这种它没法执行的话。可以在对话里直接问它「你读到了哪些项目规则」,读不到就说明位置或加载有问题;规则要写成能照做的具体条目。规则模板我前面那篇整理过一整套,这里不重复。
它引用了不存在的函数、用的是老版本写法。 这是代码索引没更新,看第五节重建索引。
四、网络、登录和转圈:请求超时、频繁掉线、更新后设置没了
请求超时、报网络错误、一直转圈。 常见原因有三类:本地网络到服务端这段不稳定、公司网络的防火墙或网络策略把相关请求拦了、服务端高峰波动。处理上:换个网络或时段重试;公司网络就问一下 IT 是不是需要放行相关域名;再看看官方有没有当期故障公告。别在一个超时请求上反复点,越点越乱。
频繁掉线、动不动让重新登录。 登录态过期、多台设备或多端登录互相挤、清过缓存,都可能导致。重新登录一次,留意是不是别处也登着同一个号,按提示保留登录状态即可。
更新之后设置、规则好像没了。 大版本更新偶尔会调整配置位置,或者你换了项目目录导致规则文件不在当前项目里。先确认规则文件还在、当前打开的确实是那个项目目录,再按当期界面把设置重新核对一遍。
转圈,但它其实是在跑大任务。 Agent 做多文件改造本来就慢,有时你以为它卡死了,其实它在连续生成。看一下有没有进度提示、终端有没有在动,确认没动静再处理,别重复提交同一个需求,不然重复扣额度。
五、额度、索引和终端:掉得飞快、搜索不准、命令要授权
额度掉得飞快。 我做过一次额度审计,烧得快的往往不是「写代码」本身,而是这些:
- 上下文堆得太长,每轮都把前面一大堆内容重发一遍;
- 一上来 @ 整个大目录,把无关代码全喂进去;
- Agent 一轮里自动跑很多次,反复改反复生成;
- 简单的小事也用更耗额度的模型。
对应省法:任务拆小、只 @ 相关文件、简单活用更快更省的模型、让它「先别动代码,先列出计划」,确认方向再动手,能挡掉大量无效生成。再定期看用量统计,心里有数。
代码搜索不准、@ 找不到文件、一直引用旧代码。 是索引没建好或卡住了。去命令面板里找重建代码索引的命令(具体名称以当期界面为准)跑一遍;把依赖目录、构建产物这类又大又没用的文件夹加进忽略,别让它们进索引;跑完再用。
终端里它执行命令,一直要你授权。 这是默认的安全策略,命令要你确认才会跑。我的建议是先看清它到底要执行什么,涉及删除、覆盖、提交、安装的命令别盲目批准;想让它少问,可以在设置里调整终端自动执行相关选项,但要清楚自己放开了什么(以当期界面为准)。
终端命令卡住不动。 先看停在什么提示:是在等你输入、等你确认,还是命令本身在阻塞。需要输入就给输入,确实卡死就中断重来,别干等。
六、一张总排查表,和遇到新报错时的处理顺序
把上面的浓缩成一张表,先扫一眼大概就知道往哪查:
| 症状 | 大概率原因 | 先做什么 |
|---|---|---|
| Tab 不弹、时灵时不灵 | 模型不支持补全/开关被关/文件太大 | 切对模型,用小文件复现 |
| Cmd+K、Cmd+L 没反应 | 快捷键被输入法或别的软件占用 | 切英文输入法,查冲突 |
| 一直转圈、请求超时 | 网络不稳/公司网络策略/服务端波动 | 换网络时段,查官方公告 |
| Agent 乱碰文件 | 没划范围、没写规则、任务太大 | 先讲可动/禁碰区,拆小任务 |
| 越改越崩 | 一次改太多 | 小步改、看 diff、留回滚点 |
| 说改了文件没变 | 截断/未接受/看错文件 | 查 diff 面板,分批应用 |
| 长对话失忆 | 上下文超限、规矩没落地 | 开新会话,规矩写进规则文件 |
| @ 没生效 | 没选中文件/@ 太多 | 确认选中,关键文件直接贴 |
| 引用旧代码、搜索不准 | 索引没更新 | 重建索引,忽略大目录 |
| 频繁掉线重登 | 登录态过期/多端互挤 | 重新登录,检查多端 |
| 额度掉得快 | 长上下文/喂太多/自动跑太多 | 拆任务、只 @ 相关文件 |
| 终端卡住或要授权 | 等确认/等输入/命令阻塞 | 看提示,确认后再放行 |
遇到没见过的新报错,我一般按这个顺序来:
- 先把报错原文读完,别只看到「又失败了」就开始乱点;
- 用一个最小例子复现:新建小文件试同样操作,判断是全局问题还是只这个项目;
- 分清是「没发出去」还是「发出去了但结果不对」:转圈、超时归网络,出了内容但错归用法;
- 回想最近变了什么:刚更新、刚换模型、刚改规则、刚动网络;
- 重开窗口、重建索引、开新会话,这三件套能解决一大半偶发毛病;
- 还不行,再去官方渠道查当期已知问题。
需要去社区或官方求助时,信息给全了别人才好帮你,我固定用这个模板:
css
版本:Cursor 具体版本号 + 操作系统
模型:当时选的是哪个模型
症状:什么操作、期待什么结果、实际发生什么
复现:能否稳定复现、具体步骤
已试过:重开窗口 / 重建索引 / 换网络 / 换模型 分别有没有用
附件:报错截图、相关日志
最后说什么时候该果断放弃当前会话重开:任务已经分叉、上下文塞满无关内容、它开始反复犯同一个错、你自己都忘了让它干过什么。重开之前,把「已经做了什么、还差什么、关键约束是什么」三句话存下来,新会话开头直接贴,比在旧会话里硬拽省事得多。
写在最后
这些毛病有个共性:工具越自动,越需要你在关键节点把住关------范围、确认、回滚、上下文。报错不可怕,可怕的是它闷头改、你闷头接受。
你最常被哪种毛病逼疯?评论区投个数字:1 补全/对话失灵;2 Agent 乱改还改崩;3 失忆、@ 和规则不生效;4 网络转圈和额度狂掉。票最高的我下一篇拆开细讲。
另外上一篇评论区有位「李工」提了个很到位的点:别只在对话里写「不许碰某些文件」,更稳的是把禁碰区变成机器能校验的规则,比如用 CODEOWNERS、提交前钩子、脚本检查改动路径,以及让测试先写红再改绿。这个我准备专门写一篇「提交前自动检查」,渠道避坑清单也在攒。
觉得有用就点个赞、收个藏,下次它抽风你照着表查;关注一下,这个系列我接着往下写。