返回博客
·AI工具

Cursor 编辑器真的香吗?用了三个月,我有点后悔

用了三个月 Cursor,踩了一堆坑。代码补全太自信、上下文功能有副作用、调试助手会指错方向。本文说说真实体验,别被营销洗脑。

#Cursor#AI编程#代码编辑器

# Cursor 编辑器真的香吗?用了三个月,我有点后悔

前阵子跟风换了 Cursor,被各种"AI 重写开发体验"的文章洗脑,结果三个月下来,踩了一堆坑,有些话不得不说。

先说结论:好用,但别神话

Cursor 的 AI 补全确实快,尤其是基于代码库上下文的补全,比 Copilot 聪明一点。但你要是指望它写完整模块、做架构设计,还是老实点,它只会给你一堆看似正确其实跑不动的垃圾代码。

我上周让 Cursor 帮我重构一个 Python 数据处理脚本,它改完之后,原来能跑的东西现在报 TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'。查了半天发现,它把原来处理 None 的逻辑直接删了,美其名曰"简化代码"。简化个锤子,原来那段逻辑是我花了一个下午才搞明白的边界情况。

最大的坑:Context 太大了

Cursor 有个功能叫 "Add to Context",你可以把整个项目丢进去,让 AI 全局理解。听起来很美好,但实际上:

  • **速度慢得离谱**:我有个中等规模的 Go 项目,大概 50 个文件,丢进去之后,每次补全都要等 3-5 秒。等你等得花儿都谢了。
  • 2. **Context 满了会忘事**:AI 的注意力窗口是固定的,你给它 50 个文件,它反而抓不住重点。我开始只选当前文件相关的那几个,速度和质量都上来了。

    3. **敏感信息泄漏风险**:你把代码全丢进去,等于把项目结构、模块依赖全告诉 AI 服务商了。要是项目里有 API Key、数据库密码什么的,最好先过一遍再丢。

    代码补全,别太依赖

    Cursor 的代码补全(Command + K)确实爽,但有一个问题:它倾向于给你"看起来很对"的代码,而不一定是"真正对"的代码。

    举几个例子:

    **数据库查询,它喜欢用 ORM,但 ORM 慢得吓人:**

    # Cursor 给的代码

    users = User.objects.filter(age__gt=18).order_by('-created_at')[:10]

    # 实际场景下,这条查询会 N+1,而且没有分页

    # 应该改成:

    from django.db import connection

    with connection.cursor() as cursor:

    cursor.execute(

    "SELECT id, username FROM users WHERE age > %s ORDER BY created_at DESC LIMIT 10",

    [18]

    )

    **异步代码,它经常给错:**

    // 它给的

    const data = await fetch('/api/data')

    const json = data.json() // 忘记 await 了

    // 正确的

    const data = await fetch('/api/data')

    const json = await data.json()

    这种错误很隐蔽,运行时可能不报错,但数据就是不对。你得自己 review 每一行 AI 生成的代码。

    调试助手:比 Copilot 强,但也不完美

    Cursor 有个 Debug 功能,你贴一段报错信息,它能帮你分析。这个确实有用,比 Copilot 的 Chat 好用多了。

    但有一个问题是:它经常把报错原因归咎到"看起来最可疑"的那段代码,而不是真正的根因。

    有一次我遇到一个 ConnectionResetError,它让我去看网络请求那段,但我折腾了半天发现,真正的问题是后端服务超时,跟客户端没关系。AI 助手给你指的方向,有时候是错的,你得自己判断。

    适合什么人用?

    我觉得 Cursor 适合这几类人:

  • **写脚本、写小工具**:快速生成代码,改改就能用,别指望它做什么大事。
  • 2. **新手学习**:看 AI 怎么写的,比自己蒙头查文档快,但一定要理解它为什么这么写。

    3. **代码重构辅助**:让它帮你改变量名、拆函数、加注释,这种机械活它干得不错。

    不适合:

  • **核心业务逻辑**:数据库模型、支付流程、权限校验,别交给它。
  • 2. **性能敏感模块**:它不关心你查询有多慢,它只关心代码"看起来对"。

    3. **安全相关代码**:SQL 注入、XSS、越权访问,AI 大概率给你埋坑。

    最后:保持怀疑,别全盘接受

    Cursor 是个工具,不是神。你用它的速度,它用你的数据(虽然他们说不会存),这是个交易。

    建议:

  • 每次用 AI 生成的代码,都过一遍,想想"这逻辑对吗"
  • 敏感项目,不要用 Cursor 的上下文功能
  • 写单元测试,让测试来验证 AI 的代码对不对
  • 保持自己的判断力,别被"AI 能写代码"这种话洗脑
  • 总之,Cursor 是好东西,但别把它当祖宗供着。你才是写代码的人,它只是个辅助工具。


    *作者:一个被 AI 编辑器坑过多次的开发者。如果你也在用 Cursor,欢迎评论区交流踩坑经历。*