最新

Cursor 怎么用 AI 改代码

改代码的入口不是侧边聊天框,而是选区上的行内改写。三个入口的分工、改一处代码的完整步骤,以及没看差异就接受的代价。

Cursor 是套在 VS Code 外壳里的编辑器,AI 不是侧边一个聊天框,而是三个不同位置的入口:打字时的补全、选中一段代码后的行内改写、以及跨文件的改动面板。改代码这件事,九成场景用前两个就够了,入口用错才会觉得它老是乱改。

入口在哪

三个入口按改动范围从小到大排:

  • 补全:正常打字时,光标后面出现的灰色文字就是建议,按 Tab 接受。它只补当前这一小段,不需要你写指令。
  • 行内改写:选中要改的代码,按 Ctrl+K(Mac 上是 Cmd+K),选区上方弹出输入框,写一句话描述你想要的结果,回车执行。
  • 改动面板:按 Ctrl+I(Mac 上是 Cmd+I)打开,可以用一句话让它同时动多个文件。这个面板在不同版本里叫 Composer 或 Agent,名字换过,位置和用法没变。
  • 侧边对话:按 Ctrl+L(Mac 上是 Cmd+L),适合问这段代码在干什么、为什么会报错,不适合直接下改代码的指令。

快捷键可以在设置里的键盘快捷方式中查看和修改,装过 VS Code 快捷键方案的话可能和上面不一致,以你本机显示的为准。

具体步骤

  1. 先用「文件」菜单里的「打开文件夹」把整个项目打开。只打开单个文件,它看不到其他文件里的定义,补全会明显变笨。
  2. 在编辑区选中要改的那几行。不要留着空选区就按快捷键,那样它不知道你想改哪里。
  3. 按 Ctrl+K,在输入框里写清三件事:改成什么、什么保持不变、用什么方式。例如给这个函数加上参数为空的判断,返回空值,其余逻辑不动。
  4. 回车后不要立刻接受。屏幕上会用颜色标出增删,新增的行和删除的行都能单独看。
  5. 逐段看差异,确认没有顺手改掉无关代码,再点接受。不接受就点放弃,文件回到改动之前的状态。
  6. 改完立刻跑一次测试或构建,别等攒了好几处改动再一起验。

几个坑

  • 指令只写「优化一下」。它会按自己的理解重写,方向和你想的经常不一样。指令里至少要有一条可判断的标准。
  • 选区给得太小。只选一行函数体,它看不到函数签名和调用方,改出来的参数对不上。选中整个函数更稳。
  • 一次让它改五个文件。改动越大,越难看出哪一处是错的,回退也越麻烦。一次只解决一个目的。
  • 不看差异直接接受。它会改格式、改注释、顺手删掉它认为没用的变量,这些都会进你的提交。
  • 以为它会自己验证。它不会替你跑测试,也不会判断业务逻辑对不对,验证这一步只能自己做。
  • 在存着密钥的文件里让它改。把密钥贴进对话,或者让它重写配置文件,都可能把密钥带到不该去的地方。

怎么验证

  • 跑项目的测试命令;没有测试就跑一次构建,先保证能编译。
  • 用版本控制的差异视图看改动范围。改的是一个函数,却动了十处,就要回头查。
  • 小步提交:一处改动验证通过就提交一次,出问题能精确回到上一个好状态。
  • 让它把改动讲一遍,你照着讲的内容去代码里核对,讲错的地方通常就是它理解错的地方。

常见问题

按了快捷键没反应

先看焦点是不是在编辑器里,焦点在终端或搜索框时快捷键不生效。其次是输入法还在中文状态,组合键被吃掉。最后去键盘快捷方式里搜这个命令,确认没被别的扩展占用。

改完风格和项目不一致

项目里有没有统一的格式配置和规则文件,决定生成代码的默认样子。先把规则写清楚再让它改,比事后逐行调格式省事。已经装了格式化工具的,改完跑一遍格式化。

它总想改别的文件

说明你用的是跨文件的改动面板。把范围写进指令,例如只改 src 目录下的这个文件;或者退回行内改写,行内改写不会碰选区以外的地方。

一句话总结:改代码用行内改写,选区要完整、指令要有可判断的标准、差异必须逐段看,验证只能自己跑,别指望它替你把关。