让我们来看看两个流行的 AI 驱动的 IDE:WindsurfCursor。两者都声称可以加速您的编码体验,但哪一个更适合您?我对两者都进行了深入评估,以下是我的发现。

如果您像我一样是 Cursor Composer 的新代理模式的粉丝,您可以在其中聊天而不必首先指定一些上下文文件,并且它可以自动为您生成和运行 shell 命令,那么您就应该感谢 Windsurf 的 Cascade(他们先这样做了)。

Cursor 的新代理模式可以跨多个文件生成代码、运行命令并自动找出所需的上下文(无需手动明确添加文件)。

与 Cursor 相比,Windsurf 的用户界面通常更简洁。感觉就像比较苹果产品和微软产品一样——这些小细节确实让 Windsurf 感觉更精致。

Windsurf 的 Cascade 功能——原始的 AI IDE 代理,可以自动填充上下文、运行命令等。

而且 Windsurf 更便宜。虽然它的起价为 15 美元/座位,而 Cursor 的起价为 20 美元/座位,但我认为它的定价并不像 Cursor 的那么明确。

诸如“模型流程行动积分”之类的东西——不管它到底是什么意思——都是定价模型的一部分。所以,希望你不会用完它们。幸运的是,我没有用完。

总的来说,似乎值得深入地比较这些产品。

标准功能

这两种 IDE 都支持您期望的标准功能,例如:

  • 人工智能驱动的自动完成
  • 与您的代码库聊天
  • 一次生成和更新多个文件
  • 使用 AI 在线编辑代码
这些已经成为 AI 驱动 IDE 的主要功能,并且都在基础上做得很好。

他们都是克劳德

这两种 IDE 实际上具有相同的大脑,因为它们在底层使用 Claude 3.5 Sonnet 来处理硬件问题。

我注意到,从功能上讲,这两个 IDE 的代码生成或更新质量并没有太大区别。

我也不指望——这些实际上只是标准模型上的 UI。

当人们试图比较并说“这个代码比那个代码生成得更好”时,我相信他们主要在比较 Claude 输出的随机性。

两者都使用较小的模型进行较小的编辑和内联完成,但我同样没有发现一个小模型与另一个小模型的质量存在重大差异。

风帆冲浪:简单且适合初学者

Windsurf 确实似乎致力于成为一款非常简单、易于使用的产品,它对初学者友好,并致力于与您的代码进行高级、简单的交互:

  • 默认聊天模式是 Agentic 模式。
  • 它根据需要索引并提取相关代码。
  • 它将为您运行命令。
  • 它不会让 UI 因到处都是按钮和代码差异而变得杂乱。
  • 您需要单击“打开差异”按钮才能在完整代码窗格中查看它。

这创造了更好的“它就是工作”体验。无需学习 100 个功能以及大量不同的模式、选项卡、选项和子选项。

只需跳进去,开始写下您想要更改的内容,它就会改变。这很容易,用户界面很干净,总体感觉非常好。

光标:更多手动,更多控制

光标更倾向于手动控制:

  • Composer 模式始终默认为normal(非agentic)。
  • 您需要选择要放入上下文中以供其生成的文件。
  • 它总是向您显示内联代码差异。
  • 这似乎强调了你应该每次都仔细检查这段代码。

总体而言,Cursor 更像是一种电动工具,具有更精确的控制和处理功能。

学习曲线比较陡峭,我发现很多人甚至不知道 Cursor 的最佳功能(与 Windsurf 不同),但是一旦你学会了它,你就拥有了所需的所有工具,甚至更多。

风帆冲浪让你更好地顺畅

Windsurf 默认执行的一项功能是我非常喜欢的,那就是在您批准之前将 AI 生成写入磁盘。

这意味着您将在开发服务器中实时看到结果。您还可以使用它来查看生成的 UI 是否符合您的要求,新代码是否会产生构建错误等等 —在接受它们之前。

如果更新仍然不太正确,您可以再次聊天以继续修改,然后再完全接受更改。如果您不喜欢这些更改,即使经过一些迭代,您也可以恢复到上一步,甚至可以一次性放弃所有内容。

与 Cursor 相比,您需要先接受更改,然后才能真正获得结果。有时这意味着您做出的更改最终看起来很糟糕。

恢复它们也不容易。我需要找出聊天的开始位置(有时可能位于一个长线程的中间,很难找到),然后手动恢复到之前的状态和时间。

Cursor 功能强大

Cursor 真正出彩的地方在于它的许多强大功能。例如,Cursor 支持多标签功能。

如果它检测到您所做的更改会从代码后面的另一个更改中受益,那么您只需再次按下 Tab 键即可继续应用这些新的更改。

当它起作用时,我发现它非常酷,但当变化没有应用到正确的位置时,它可能会有点笨重和令人困惑。

Cursor 通常采用“厨房水槽”方法来实现 IDE 中的 AI。所有东西都有一个 AI 按钮:

  • 发现错误了?这里有一个“使用 AI 修复”按钮。
  • 下拉选项?有一个AI按钮可修复。
  • 终端出错了?有一个“使用 AI 调试”按钮。
  • 等等...

单击这些按钮通常会打开聊天功能,以便您可以与 AI 来回沟通以解决问题。

我发现这些“厨房水槽”功能很有用,但它们会让用户界面变得混乱。例如,我遇到过这些覆盖层很烦人,很碍事,而且在需要关闭它们时我无法关闭它们。

如果您像我一样,更喜欢关注代码需要什么,而不是记住确切的命令名称或参数,那么在终端中随时使用键盘快捷键来使用 AI 会非常有帮助。

不过,有一件事让我很恼火,那就是 Cursor 专门劫持了Command+K这一点,这意味着我无法使用它来清除终端。似乎没有办法覆盖或关闭它。

这两个 IDE 都允许您指定自定义规则来通知其完成情况,但 Cursor 的支持更加强大和灵活。它包括让记事本可以根据需要进行搜索并包含在您的上下文中。

总体而言,Cursor 在上下文管理方面更加强大。这两个 IDE 都允许您标记要包含在上下文中的某些文件,但 Cursor 允许您添加:

  • 整个文档集
  • 来自网络的特定页面
  • 特定的 git 分支和提交
  • 标记@web以进行网络搜索

 Cursor 的另一个非常酷的功能是只需单击即可自动生成提交消息。

更棒的是,它尊重你的.cursorrules文件。我发现默认输出比我喜欢的更冗长,所以我在我的文件中添加了一个注释,.cursorrules以使提交消息更短,瞧,完美。

Cursor 的另一个很酷的实验功能是新的错误查找器。

在查看了严重的错误消息并点击一个有自己的基于使用情况的定价的按钮(因此可能只需点击一下就需要花费一到几美元)之后,它将扫描你的功能分支与主分支上的所有代码更改,并在你的更新中寻找潜在的错误。

它发现了一些非常有用的错误,节省了我查找和修复它们的时间。对于它发现的每个错误,它都会给出可信度评级和概述。

当您选择在 Composer 中修复它时,它会将详细信息填充到提示中并像您习惯的那样生成更新。

两者各自缺少什么

我希望这两款产品都具有更强大的调试循环。就像Devin 承诺的那样(有时可以实现),但就在 IDE 中。

Windsurf 和 Cursor 都声称他们有代理,但我不确定他们提供的是否是真正的代理。

我习惯于认为代理可以尝试某件事、评估它并重复执行,直到验证结果正确。但实际上它们都不能做到这一点。它们只生成代码,如果你发现错误,你就有责任去修复它们。

不过幸运的是,与Zed 编辑器不同,Windsurf 和 Cursor 是 VS Code 的分支。这意味着您可以访问庞大的 VS Code 扩展市场。

可用的扩展之一是 Cline,它与这两个 IDE 配合得很好。Cline 比 Cursor 或 Windsurf 更像一个代理,因为它可以采取一系列步骤、评估结果、修复自己的问题并继续。

Cline 在某些情况下非常智能,例如能够运行命令来验证其自身的正确性,打开浏览器来检查开发服务器呈现的内容等等。它并不完美,但它是朝着我希望 Cursor 和 Windsurf 最终与他们的代理一起前进的方向迈出的坚实一步。

我最喜欢的工作流程

说到与其他工具的兼容性,让我们看看如何通过 Cursor 或 Windsurf 将 Figma 设计转换为代码,并使用 AI 让设计栩栩如生。

您所要做的就是启动Builder.io Figma 插件,选择要转换的元素或框架,单击生成,然后复制生成的命令并将其粘贴到 Cursor 或 Windsurf 终端中。

Builder.io 将从设计中生成像素完美的代码,甚至像您一样重复使用现有的组件。

现在您有了我需要的标记,您可以跳入 Cascade 或 Cursor 编辑器并提示他们添加您需要的任何功能,如数据、交互性和业务逻辑等等。

这是我通常使用的端到端工作流程:获取设计、让 AI 添加逻辑、自动生成提交消息并启动 PR。这真的感觉像魔术一样。

那么,您应该使用哪一个?

老实说,我认为无论选择 Windsurf 还是 Cursor 都不会错。

两者都是出色的 IDE,支持 AI 驱动的自动完成、内联编辑、多文件编辑、与您的代码库聊天以及代理工作流,它们可以根据您的要求读取和写入多个文件。

尽管我发现 Windsurf 更简单、更直观,并且具有更漂亮、更精致的用户界面,但 Cursor 却配备了强大的功能。

到处都是这些按钮可能会让界面显得杂乱,但我发现很难放弃一些我非常喜欢的功能。我喜欢自动生成的提交消息,我喜欢错误查找器,有时我甚至喜欢使用多标签功能(当它有效时)。

尽管我会忍受用户界面中的一些小故障,但对于专业的开发工具来说,这是我的个人偏好。

对于初级开发人员或真正喜欢 UI 优化的人来说,Windsurf 可能是更好的选择。它的起点也较低,如果你刚开始使用Bolt.new之类的工具,Windsurf 会更像你习惯的那样。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐