简单说一下 GitHub Copilot 和 Cursor 的差别,以及为什么我觉得 Cursor 要更好。

最开始 GitHub Copilot 是 VSCode 插件形式,只能在当前光标位置自动完成,当然现在越来越多的功能融合到 VSCode 内核中了,比如 CMD + I 就可以弹出对话框,比如有专门的聊天侧边栏。VSCode 也在提供更多的原生 AI 编辑器的支持。

Cursor 最开始不是基于 VSCode,但后来直接基于 VSCode 魔改了,是基于 VSCode 集成了 AI 功能的编辑器。VSCode 用户几乎可以无缝切换到 Cursor,Cursor 的成功一大半得归功于 VSCode 的开源。

功能上有几点主要差别(GitHub Copilot 最近更新很频繁,我写的一些内容可能已经或者将会过时)

第一个常用的是自动补全、修改功能。

这个功能是你在正在修改代码、写代码的时候,编辑器自动给出智能提示,猜测你要做什么修改,如果猜对了你只要按 Tab 键,就可以自动修改。

GitHub Copilot会在你的光标后用灰色显示,但是一次只能提示一个位置;Cursor 可以提示多个位置同时对多个位置进行修改重构。并且 Cursor 会更准确,经常你一点光标它就能给出靠谱的智能提示。如果你用惯了 Cursor 再去用 GitHub Copilot 会觉得它很“笨”,经常猜不到你要什么,而且要一个地方一个地方修改。

第二个是通过提示词添加、重构、删除新功能

很多人在用 AI 编辑器只用了自动补全修改的功能,而通过提示词让 AI 帮你生成代码的功能用的比较少或者不会用,这就相当于让 AI 编辑器的能力只发挥了一小部分,真正体现智能的地方就是通过提示词对项目全局修改。

GitHub Copilot 和 Cursor 都可以通过两种方式唤出写提示词的窗口:CMD + I 或者侧边栏的 AI Chat。GitHub Copilot 的 CMD + I 这个快捷键功能没有太多人知道,因为 VSCode 上没有明显提示,很多人不知道,Cursor 在选中代码后有提示相对好一点。

但是 Cursor 又有两个功能键 CMD + K 和 CMD + I,有一些细微差别,建议默认选择 CMD + I 这个,也叫 Composer。

这个提示词撰写窗口对于 GitHub Copilot 和 Cursor 来说,有个根本性的差别,包括 Windsurf 也没有的,就是上下文内容的手动选择。对于 GitHub Copilot 来说,它是根据你打开的 Tab 标签来“猜测”你的上下文,但这很难猜准,而 Cursor 可以让你手动选择你想要的上下文,在Composer中通过+号或者 @ 去附加代码。对于专业程序员来说,手动控制上下文这非常非常重要!因为在修改代码时,肯定少不了要引用现有的代码,参考其API,参考其代码结构等等,虽然你也可以手动复制进去,但是如果你可以方便的选择那是最好的。

回归到提示词工程,要让提示词效果好核心有两点:

  1. 指令清晰

  2. 上下文充分

如果你自己作为专业程序员不能精确控制上下文,寄希望于 AI 帮你选择上下文,现阶段还是不靠谱的,这点 Cursor 是做的非常好的。如果你还没有用过 Cursor 的 Composer 或者 Composer 的手动选择代码作为上下文的功能,一旦你习惯了,你再也受不了 GitHub Copilot 和 WIndsurf 这些帮你“猜”上下文代码的 AI 编辑器。

第三个是 Agent 或者说智能体的功能

GitHub Copilot 的 Chat,如果你用过就知道,它只能给出修改建议,生成参考代码,无法帮你直接应用修改,你需要手动去复制粘贴创建代码。

Cursor 的 Chat,默认也不会,但是你可以在代码上点击“Apply”链接应用代码到相应的文件。

GitHub Copilot 的 Composer,只能修改当前文件代码,不能应用到其他文件位置。

Cursor 的 Composer,它可以在项目全局添加、删除和修改代码,你只要review一下修改就可以应用这些修改,不满意也可以拒绝或者局部拒绝。

Cursor 的 Composer,现在有两个模式:Normal 和 Agent,Normal 就是简单的根据指令和上下文生成代码、应用修改。Agent 则可以像一个机器人一样,根据你的指令去分析代码,去安装需要添加的包,当然需要你自己确认。这个 Agent 功能在你创建新项目达环境的时候特别实用,一步步帮你把包都安装好了,直接就可以运行。

Agent 功能 Windsurf 做的非常好,Cursor 可能是借鉴的 Windsurf,GitHub Copilot 据说也要推出了。

综合下来,我觉得还是 Cursor 最好用,但最重要的是,你自己得试试用一用,适合自己的能最大化提升效率的才是最好的。