Cursor使用技巧

Cursor使用技巧

1、选择模式和模型

问答模式 选择模型 对话模式 作用 复杂度
Chat GPT-4o embedding 模式就是直接在本地的向量化库中进行搜索,把搜索
最相关的前几个 chunk 信息带入请求的 message 中,
然后返回 给用户结果。
简单
Chat GPT-4o reranker 模式则是多了重排序和思考的步骤,更复杂一些。
模式效果在梳理总结项目更为全面的信息时效果更好
复杂
Composer Claude 3.5 normal 修改当前文件 简单
Composer Claude 3.5 agent 读取全部文件并会联系上下文
修改代码、运行终端命令
困难

2、常用快捷键

Tab:自动填充
Ctrl+K:编辑代码
Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)
Ctrl+i:编辑整个项目代码(跨文件编辑代码)

接下来介绍Ctrl+K的使用,使用方式主要分为两种:
1. 从0到1编写代码
2. 修改已有代码
(也可以选中整个文件的代码,让Cursor帮你生成详细的代码注释哦)

3、将外部文档作为知识库进行问答

1、可以在设置中加入文档,例如加入开发文档作为Cursor的知识库来更好的辅助编程。

2、加入文档之后,使用文档进行提问的方式和单个文件一样,使用Ctrl+L唤起对话框,然后输入@,点击docs选择添加好的文档即可。


3.png

4、加入内置System prompt

1、经常写prompt的小伙伴一定知道System prompt的作用,可以帮助大模型更好的了解自己的职责和用户的行为习惯,从而更精确的回答问题。在设置中添加Rules for AI添加System prompt


4.png

2、具体的prompt如下:

    # Role
    你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。

    # Goal
    你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。

    在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:

    ## 第一步
    - 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。

    ## 第二步
    你需要理解用户正在给你提供的是什么任务
    ### 当用户直接为你提供需求时,你应当:
    - 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
    - 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
    - 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。

    ### 当用户请求你编写代码时,你应当:
    - 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
    - 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
    - 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
    - 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。

    ### 当用户请求你解决代码问题是,你应当:
    - 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
    - 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
    - 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。

    ## 第三步
在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中

5、官方文档

https://cursor101.com/zh

6、Apply

首先来看一下 Apply 功能,这个功能很方便,可以轻松地把 AI 在聊天中给出的代码建议直接用到你的项目中。

5.png

应用代码块后,可以查看修改的 diff 内容,可以直接点击聊天窗口中代码块右上角的"接受"或"拒绝"按钮来快速处理。

6.png

虽然 Apply 能力让聊天功能(Cmd+L)具有了代码修改的能力,但是如果有明确的代码修改需求,其实更推荐使用专门为代码修改设计的功能:

  1. 提示栏(Cmd+K): 擅长局部代码的修改能力
  2. Composer: 擅长全局跨文件的修改能力

7、基于 @ 的上下文引用

在Cursor的AI输入框中,比如在提示栏(Cmd K)、Chat 或 Composer 中,您都可以通过输入@符号来引用上下文。

7.png

值得说明的是在 Chat 和 Composer 中,@ 的上下文引用能力基本是一致的。

8、合理使用上下文

简单来说,就是要给AI恰到好处的信息,既不少也不多,这样AI才能最好地帮助你解决问题。

根据上下文从当前项目获取还是外部获取,可以将上下文信息的获取分成两类:

  1. 内部信息
  2. 外部信息

9、Code/Files/Folders

直接根据字面的意思就能看出这三个分别代表了什么样的引用信息,根据需要选择合适的上下文范围:

  1. Code(代码片段):允许你引用当前文件中的特定代码片段
  2. Files(文件):让你引用整个文件的内容(包括图像文件)
  3. Folders(文件夹):使你能够引用整个文件夹中的所有文件

值得注意的是,当你使用 Files(文件)或 Folders(文件夹)级别的引用时,如果一个文件内容太多,Chat 不会一下子全部读取,而是会把文件分成小块。

然后,它会根据你的问题,挑选出最相关的部分。这样做可以让 Cursor 更快地回答你的问题,并且给出更准确的回答。

8.png

如果你就是想把整个文件或文件夹的内容都给到 AI,可以开启长上下文功能。

另外,你会发现在提示栏(Cmd+K)中,是不提供大范围的上下文引用能力的,比如 Folders 和 Codebase,Cursor 还是希望提示栏(Cmd+K)专注于局部代码的处理。

10、外部信息

外部信息的获取在 AI 辅助编程中非常重要。

它就像是给 AI 开了一扇窗,让 AI 能看到更大的世界。有了这些信息,AI 不再局限于项目内部,而是能获取最新、最相关的知识。

Cursor 主要提供了 @Doc@Web 这两个快速获取外部信息的方式。

1、Doc

在 Chat 中使用@Doc,可以引入文档来拓宽 AI 的知识面。

比如当前项目使用了某个特定的技术栈,你可以指定某个版本或者最新版本的技术文档,来满足你当前的技术栈要求。

Cursor 提供了一些常用的内置文档,比如React相关的技术文档。

9.png

在设置中,你也可以手动引入你需要的外部文档。

10.png

你提供文档的 URL,Cursor 会自动帮你抓取所有的关联的文档。

2、Web

@Web 功能允许 Chat 在回答问题时搜索和引用网络上的信息。

最直接的使用方式就是直接在 Chat(Cmd+L) 中使用 @Web,这样会自动搜索相关的网络信息。

11.png

另外可以@网址,引入单个页面信息。

12.png

11、上下文模版 - Notepad

Notepad 是 Cursor 提供的一个强大的上下文模板功能。它就像是你的个人笔记本,可以在其中保存各种信息,然后在需要时轻松引用。


13.png

使用 Notepad,你可以:

  • 自定义上下文:在 Notepad 中输入任何你认为重要的信息,比如项目背景、编码规范或常用代码片段。

  • 灵活引用:无论是在 Chat 还是 Composer 中,你都可以方便地引用 Notepad 的内容。

15.png

Notepad 的优势在于它提供了一种统一且个性化的方式来管理和使用上下文信息。这不仅能提高你与 AI 交互的效率,还能确保 AI 始终了解你的项目背景和需求,从而提供更准确、更相关的帮助。

在 Notepad 中,你可以输入文字信息,以及引用文件来构建上下文模版。

但是我理想的情况是 Notepad 应该支持更多的引用类型,在 Notepad 中可以组合我们上面介绍的各种引用类型。

12、更详细的文档

https://cursor101.com/zh/tutorial/learn-cursor-chat

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容