Cursor 进阶使用教程

设置

导入 vscode 数据

Cursor 是基于 vscode 的分支开发而来,所以可以与 vscode 无缝对接,只需要导入 vscode 中的设置即可

Import 之后,你的所有插件、主题配置等等就可以跟 vscode 保持一致了,不需要手动再安装一遍。导入是增量导入,你 Cursor 中已有但是 Vscode 中没有的插件或设置,并不会被清除掉

问题:为什么要使用 Vscode 导入?

答:因为 vscode 带有自动同步功能(包括设置、插件、主题等配置),但是 Cursor 是不提供同步功能的,所以为了在新设备上安装 Cursor 时避免重复设置,可以先下载 vscode ,登录账号后把数据同步下来,然后再导入到 Cursor 中,实现无缝迁移。

工具栏位置

Vscode 默认的工具是在左侧,而 cursor 只留了很小一份给工具栏,而且还变成了横排

如果你很不习惯放在顶部,那么打开设置,搜索orientation,然后改成 vertical 就可以保持竖直排列

Codebase Indexing

代码仓库文件索引(Codebase Indexing) 是 Cursor 用来感知项目结构的重要工具。Cursor 会遍历每一个文件,记录其相对位置,就像构建了一个项目文件地图。最核心的意义在于------你使用 Cursor 编程时,model 会调用 file_search_tool ,经过 codebase indexing 后,就能得到更为精确的结果。

Pro 版用户最多支持 5w 个文件,企业版用户 25w

Docs

Docs 用来添加一些特殊文档到 context 中。使用场景是:Cursor 通过调用 Model 、在线查询资料、rules 这些手段仍然无法满足补充 context 信息而导致出现 bug 或者理解偏差时,就可以添加用户自定义的文档到 Docs 中。通常这个文档是直接通过搜索引擎搜不到的技术文档、个人博客、声明性文档等

Docs 只接受 url 链接,这意味着你添加到 Docs 中的文档最好是 AI 能够爬取内容的在线文档站点。

Context 上下文

能否使用 AI 高效率完成工作,关键就在于 context 的定义是否完整、清晰

定义

什么是 context ? context 就是 AI 的记忆,是 AI 对当前项目的所有认知,它是 AI 进行逻辑推理的依据

Context 分为指令、状态这两类,指令就是用户输入的 prompt ,例如:"请你实现一个 react 的 table 组件";状态则是当前项目中包含的各种信息,例如:"当前项目基于 rust 编写"、"core/collect 这个目录属于依赖收集模块"

长度

Context 的长度是有限制的,也就是 AI 单次能够处理的输入大小,一般以 token 作为计量单位

这个工具 tiktokenizer.vercel.app 可以计算出你输入的文本内容的 token 长度

下面是 Cursor 中内置的 Model 的 Context 长度。你会发现与各个模型官网提供的长度不一致,这是因为 Cursor 内部还有一些系统提示词、其他提示词工程的优化、Model 性能权衡作出的妥协,这些要占用一些空间

构建

每次对话之前你都需要尽可能构建一个非常详细、明确的 context 给 AI ,这是降低 AI 幻觉的最有效的办法。

在 Cursor 中 context 包含了非常多的种类

下面说明几种核心的添加 context 的方式:

  • File&Folders :最方便的用法是直接拖拽文件或文件夹到对话中,可以是 text、csv、md、各种源代码文件(基于字符的文本文件)。word、pdf、ppt 这类文件是不支持的

  • Code:选中某一段代码然后点击"Add to chat"

  • Git:让 AI 做 code review 时可以将某一次 commit 添加到 context 中

  • Past Chats:基于之前对话的内容,突然有了新的想法,新建了一个对话,但是又不想重新给 AI 说明一遍 context ,此时直接引用相关的历史对话即可

  • Web:常用于手动指定文档, 需要是 AI 可以爬取内容的网站

  • Image:截图后粘贴到对话框中就可以添加了

  • Terminals:跟 code 添加方式一样,选中终端中的输出信息,点击"Add to chat"

Prompt

Prompt 也属于context 的一部分,直接影响 Model 输出的结果。甚至 Cursor 内置的每个 Model 都加上了内置的系统提示词。这个仓库收集了各种 AI 工具内部的系统提示词:github.com/elder-plini...

编写原则

编写条理清晰、容易理解的 pompt 可以遵循以下几个要点:

  1. 使用 md 格式,合理使用有序列表、无序列表,合理的换行、空格

  2. 每次只做一件事情,整个 prompt 都围绕这件事情来展开

  3. 积极的举例子,AI 最擅长类比推理

  4. 要尽量详细、目的明确,而不是宽泛、模糊的指令,积极的添加 context

编写技巧

可以明确填入 context 作为描述语句的一部分

有多张图片时可以使用序号来指明

按 shift + enter 换行

Agent

Model

模型切换

首先,确定好你日常需要用哪些模型?我这里分为下面几类场景:

  1. 简单任务且需要快速回复:claude-4-sonnet

  2. 引入较多 context 且需要保证质量:claude-4-sonnet-thinking、genimi-2.5-pro

  3. Context 很多、任务复杂且没有任何思路与提示给到 AI :o3

但是每次对话都来回切也很麻烦,所以默认就保持在 claude-4-sonnet 就好了

Cursor 官方推荐的决策树

这里也可以关注下最新的AI 跑分排行榜,还有web 开发领域的 AI 排行榜

启用模型

如果你发现点击 add model 之后有些模型不在列表里面,可能是你没有打开启用开关。你可以在设置里面启用,通常来说只启用几个最常用的就行,比较旧的模型就不用开了,原则就是"喜新厌旧"

Auto & Max

不要启用这个 Auto 选项,因为你不知道 Cursor 背后到底给你用的什么模型,有可能是很旧的模型也有可能是免费模型,所以不要启用,每次都手动指定模型!要把每一分订阅费都花出去。

MAX 模式通常也不要启用,它会额外计费,开启后使用的模型 context 长度都会显著增加,适用于处理非常复杂的任务,且 token 消耗速度大约是正常模式的 5 倍。

三种模式

Ask

这个模式应该是你最常使用的模式,请将它设置为默认方式。

Ask 顾名思义就是询问、对话的方式,Cursor 中 Ask 模式主要用来与 AI 进行多轮的对话,最终得出某个结论,或者达成一致意见。它有以下特点:

可以访问 context ,可以调用 tool_call ,网络检索、读取文件等工具都支持

可以调用 MCP

不会修改或创建任何代码文件

不会主动执行终端命令

在使用 AI 完成某项任务之前,你应该完成 10 轮对话,7 轮对话使用 Ask 模式与 AI 讨论并完善各种细节,后面 3 轮对话才改用 Agent 模型,完成代码构建。

Agent

这个模式是为了最终产出结果用的,它可以增、删、改、查你项目中的文件,编写各种代码,生成详细的 md 文档等等。它是构建者模式。

Manual

这个模式用的很少,很可能后续被 Cursor 砍掉

并行对话

新建并行对话

场景:当前你正处于一个对话中,但是你需要查询另外一个问题

技巧:你可以新建一个 chat ,但是这样会脱离当前对话窗口,你就看不到之前的对话了;此时最好的做法是新建并行对话,它不受当前窗口其他对话上下文的影响,对话的过程也不会对其他对话产生影响,相当于在当前 chat 窗口中新增了一个独立的子对话窗口,可以方便的快速切换

触发方式:先点击 chat 对话聚焦(不然会当成触发 vscode 的快捷键),然后再按下 command + T 即可创建

创建 task 分支

场景:你正处于对话 1 ,但是突然有了灵感,想在对话 1 的基础上尝试另一个方案

技巧:复制对话 1 (包括对话 1 的所有 context 等全部信息),就可以新建一个与对话 1 完全一样的独立新对话

其他功能

Terminal 终端智能提示

终端中执行一个命令但是不记得怎么命令怎么敲了,可以按下 command+K ,直接描述你需要执行什么操作,AI 会生成对应的命令

图表绘制

但是经常会遇到渲染错误,这是因为 Cursor 内置的 mermaid 渲染器版本很旧(8.x),但是 AI 往往会使用 10.x 的语法来编写绘图指令

相关推荐
超人不会飛11 分钟前
就着HTTP聊聊SSE的前世今生
前端·javascript·http
蓝胖子的多啦A梦14 分钟前
Vue+element 日期时间组件选择器精确到分钟,禁止选秒的配置
前端·javascript·vue.js·elementui·时间选选择器·样式修改
夏天想17 分钟前
vue2+elementui使用compressorjs压缩上传的图片
前端·javascript·elementui
今晚打老虎z25 分钟前
dotnet-env: .NET 开发者的环境变量加载工具
前端·chrome·.net
用户38022585982430 分钟前
vue3源码解析:diff算法之patchChildren函数分析
前端·vue.js
烛阴36 分钟前
XPath 进阶:掌握高级选择器与路径表达式
前端·javascript
小鱼小鱼干39 分钟前
【JS/Vue3】关于Vue引用透传
前端
JavaDog程序狗41 分钟前
【前端】HTML+JS 实现超燃小球分裂全过程
前端
独立开阀者_FwtCoder1 小时前
URL地址末尾加不加 "/" 有什么区别
前端·javascript·github
独立开阀者_FwtCoder1 小时前
Vue3 新特性:原来watch 也能“暂停”和“恢复”了!
前端·javascript·github