全网最全面详细的Cursor使用教程,让开发变成聊天一样容易

目录

前言

一、cursor是什么?

二、使用步骤

1.cursor的下载

2.内置模型

3.常用快捷键

4.项目的全自动开发

5.将外部文档作为知识库进行问答

6.加入内置System prompt

7.更详细的使用方法

总结


前言

从年中cursor开源以来,逐渐火遍全网,成为编程的又一更强力助手,在亲身使用了三个月后写下该教程,供广大开发者参考,cursor的使用十分简单,看完你会了解到集成了先进LLM的cursor在编程方面的强大。(结尾总结有彩蛋)


一、cursor是什么?

cursor是一个集成了GPT4、Claude 3.5等先进LLM的类vscode的编译器,可以理解为在vscode中集成了AI辅助编程助手,从下图中的页面可以看出cursor的布局和vscode基本一致,并且cursor的使用操作也和vscode一致,包括extension下载、python编译器配置、远程服务器连接和settings等,如果你是资深vscode用户,那么恭喜你可以直接无缝衔接cursor。当然,如果你是和我一样的pycharm选手,你也可以很快上手cursor。

二、使用步骤

1.cursor的下载

cursor直接在官网下载安装即可,并且注册账号,在第一次打开cursor时输入账号信息即可。

cursor官网:Cursor

下载页面:

在注册完成后,你会有一个专属账号,每个账号的模型调用次数是有限的,其中GPT4和Claude3.5的免费调用次数为500次,其它比较弱的模型的调用次数无上限(包括新推出的o1-mini,很良心有木有)。

点击最上面的框,输入>language,可以配置简体中文。

2.内置模型

cursor内置了很多LLMs,包括最先进的GPT4s、Claude3.5s和openai最新发布的推理模型o1-preview和o1-mini,在右上角的设置中即可打开相应的模型进行辅助编程。平时用的最多的还是Claude3.5和GPT4,因为代码能力真的很强悍,后面会展示。

3.常用快捷键

cursor最常用的快捷键就四个,非常好记:

Tab:自动填充

Ctrl+K:编辑代码

Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)

Ctrl+i:编辑整个项目代码(跨文件编辑代码)

首先介绍Tab快捷键的使用,如果cursor补全代码,使用Tab键接受即可。

按下Tab键:

接下来介绍Ctrl+K的使用,使用方式主要分为两种:

1. 从0到1编写代码

2. 修改已有代码

(也可以选中整个文件的代码,让Cursor帮你生成详细的代码注释哦)

1. 从 0 到 1 编写代码

随便找一个空白区域按下Ctrl+K唤出编辑框,选择模型,输入需求开始生成,生成后点击Accept或或Reject接受或拒绝。

效果如下:

点击之后:

2. 修改已有代码

选中已有代码按下Ctrl+K唤出编辑框,选择模型,输入需求开始编辑,生成后点击Accept或或Reject接受或拒绝,也可以点击代码行最右侧进行单行代码的Accept或Reject。

接下来介绍Ctrl+L的使用,这个快捷键非常强大,可以编辑代码、智能问答,其中智能问答可以针对选中代码、整个代码文件和整个项目进行问答。

同样选中一块区域按下Ctrl+L,右侧会显示问答界面,针对选中的区域进行提问,同时也可以提出代码编辑要求,然后会给出修改后的代码(和Ctrl+K类似)。

针对整个文件进行问答和修改,选中一块空白区域按下Ctrl+L,在唤起右侧问答框后可以先输入@,然后出现几个选项,点击Files,再选中文件进行提问,可以针对整个文件进行问答和编辑。

直接提出要求,如果是编辑代码则可以直接点击Apply,也会和Ctrl+K一样,直接覆盖到编译器中。

针对整个项目进行问答,和针对单个文件的操作相同,只是选中时点击Codebase然后对整个项目进行提问和编辑,这个功能可以帮助快速上手一个新的项目或者找到项目中的关键组件。

4.项目的全自动开发

Ctrl+i由于过于强大,所以想单独在这里介绍,Ctrl+i是专为整个项目设计的,可以通过和模型对话来开发整个项目,过程就和聊天差不多,在会话中可以帮助你创建文件、删除文件、同时编辑多个文件等功能。使用Ctrl+i需要打开设置中的按钮:

我是准备了一个空白项目,随意点击一块空白区域,按下Ctrl+i来唤起聊天框开始进行多轮对话。

让他写一个贪吃蛇游戏,点击Accept all直接应用。

第一轮对话,创建了js文件。

第二轮对话,创建了html文件。

效果:

第三轮对话,加入分数,开始游戏和结束游戏按钮。

效果:

如果想看更复杂的项目构建案例,可以到下面这个网址:

https://www.youtube.com/watch?v=QadMS2eKvKM

5.将外部文档作为知识库进行问答

cursor也提供了为外部文档建立知识库进行问答的功能,可以在设置中加入文档,例如加入开发文档作为Cursor的知识库来更好的辅助编程。

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

6.加入内置System prompt

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

具体的prompt如下:

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

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

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

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

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

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

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

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

7.更详细的使用方法

以上介绍的使用技巧足够你应付所有的开发需求,如果你对Cursor很感兴趣,可以参考以下网站进行更多了解

https://cursor101.com/zh


总结

今天介绍了Cursor的下载和使用,集成了LLM的编译器更加强大,并且极易上手,在使用了三个月后也是慢慢和Cursor在编程上形成了默契,相比较之前的GitHub copilot,Cursor能力更强更全面。

但唯一的困扰是模型的使用次数有限制,超过次数就要收费,下一节介绍如何快速解决这个问题,希望Cursor的出现能给广大码友释放双手,留有更多的时间学习技术,关注技术本身。

### 关于数据库游标操作指南 #### MySQL 游标的定义与基本概念 游标是一种用于遍历查询结果集的方法,能够逐行处理数据。通过游标可以在结果集中前后移动并执行特定的操作[^1]。 #### 声明游标 在MySQL中声明游标的语法如下所示: ```sql DECLARE cursor_name CURSOR FOR select_statement; ``` 此语句创建了一个名为`cursor_name`的游标,并将其绑定到给定的选择语句上。这使得后续可以通过该名称来访问由选择语句产生的记录集合。 #### 打开游标 一旦声明了游标之后,在实际使用之前还需要打开它以便获取其中的数据项: ```sql OPEN cursor_name; ``` 这条命令会初始化游标并将内部指针定位至第一条记录处准备读取数据[^3]。 #### 获取当前行数据 当成功打开了游标以后就可以利用 `FETCH INTO` 来取得当前所指向的那一行的信息了: ```sql FETCH cursor_name INTO var1, var2,... ; ``` 这里假设已经事先定义好了相应数量和类型的变量(`var1`, `var2`)用来存储每一列的内容[^4]。 #### 判断是否到达末尾 通常情况下会在循环结构内不断调用 fetch 操作直到遇到结束标志为止;此时就需要借助状态变量来进行判断: ```sql DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE; ``` 上述代码片段表示如果遇到了不存在更多可用行的情况,则设置标记位 `done=true` ,从而退出循环逻辑。 #### 关闭游标 完成所有必要的处理工作后应当记得关闭游标以释放资源: ```sql CLOSE cursor_name; ``` 这样就完成了整个游标的生命周期管理过程。 #### 实际应用案例 下面给出一段完整的例子展示如何在一个存储过程中运用这些知识点实现对表中某些符合条件记录的操作: ```sql DELIMITER $$ CREATE PROCEDURE process_customers() BEGIN DECLARE finished INTEGER DEFAULT 0; -- 结束标志 DECLARE cust_id INT; /* 定义处理器 */ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finished = 1; /* 创建游标 */ DECLARE customer_cursor CURSOR FOR SELECT id FROM customers WHERE status='active'; OPEN customer_cursor; read_loop: LOOP FETCH customer_cursor INTO cust_id; IF finished THEN LEAVE read_loop; END IF; -- 对每一个客户ID做具体业务处理... UPDATE orders SET shipped_date=CURRENT_DATE() WHERE customer_id=cust_id AND shipped_date IS NULL; END LOOP; CLOSE customer_cursor; END$$ DELIMITER ; ``` 这段脚本展示了怎样构建一个简单的存储过程去更新那些还没有发货订单的状态为已发货,前提是它们所属客户的账户处于激活状态下。
评论 76
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值