概述
从年中cursor开源以来,逐渐火遍全网,成为编程的又一更强力助手。
Cursor 是由 Anysphere 这个实验室打造的代码编辑器,它基于 VSCode 修改派生,因此所有你在 VSCode 上的配置都能够导入到 Cursor 里使用,如果你平常使用 VSCode 进行开发,那么你能够非常便捷地迁移过来。
Cursor 和 VSCode 的最大的不同点在于它内置了 AI 进行代码的协作,为此它对 VSCode 进行了诸多修改,这些修改使得它的体验比在 VSCode 上使用诸如 Github Copilot 一类的插件更加舒服。
cursor是一个集成了GPT4、Claude 3.5等先进LLM的类vscode的编译器,可以理解为在vscode中集成了AI辅助编程助手。并且cursor的使用操作也和vscode一致,包括extension下载、python编译器配置、远程服务器连接和settings等,Cursor 常用快捷键和 Visual Studio Code 键盘快捷键基本相同。
除了代码补全,Cursor 能直接将修改部分的内容应用到你的代码上,是因为它自己微调了一个模型,让 LLM 输出了 Git 那样的 diff fomat[3]。借助 diff format 它能够精确地修改相应地代码段。
并且更舒服的是, Cusor 在一次对话里能够方便地传递多个源代码文件或是扫描你整个项目的代码仓(按下 ctrl + enter
)提取出相关内容作为向大模型询问的上下文,以获得更精确的回答
生成速度和索引速度非常流畅,因为它会类似于 JetBrains 那样对代码仓建立索引,不过它的索引是做向量化(embeddings,习惯翻译是向量内嵌,但我喜欢叫它向量化),因此在索引的时候可以便捷地做相似性的搜索以获得更好的生成效果。
功能:
1、智能代码生成
Cursor 能够根据开发者提供的简短描述或部分代码片段,快速生成完整的代码模块。Cursor 能够智能预测用户下一步做什么,并且把光标放到合适的位置,让你真正一路 tab。同时,它的多行编辑功能允许一次性对多行代码进行修改建议。
2、代码理解与解释
能够理解代码的含义和上下文,并生成有逻辑性的代码,面对复杂的代码库,尤其是他人编写或开源项目中的代码,理解其逻辑往往颇具挑战。Cursor 可以对选中的代码进行详细解释,逐行分析代码的功能、变量含义以及执行流程。这对于新手开发者学习优秀代码结构,或是资深开发者快速剖析陌生代码,都提供了强有力的支持。
3、代码补全与纠错
在编程过程中,难免会出现语法错误或忘记函数参数等情况。Cursor 具备实时的代码补全功能,它能依据代码上下文智能预测接下来需要输入的代码片段,减少拼写错误与语法疏漏。同时,当检测到错误时,会立即给出修正建议,引导开发者快速定位并解决问题。
AI Fix:如下冒号打成了中文的,一开始后面显示tab,直接tab就自动修复了,撤回后显示红色波浪线,悬浮鼠标如下提示:
点击了最后一个:
提交后自动修复了
4、对话大模型:
除了写代码还可以直接当成对话大模型使用,如写一些大纲树,或者遇到不懂的问题也可以帮助解释。而且正常使用chatgpt需要科学上网,在cursor里可以直接对话也不需要科学上网。
安装
Cursor 需要去它的官网上下载:Cursor - The AI Code Editor。下载完后需要注册才能使用,支持 Google 与 Github 账号登录。
Cursor 采取的是订阅制。新用户可以试用两周的 Pro 订阅。而要订阅 Pro 的话,每个月需要支付 20 刀(大约一百四十元上下浮动)。虽好用,但是有丢丢小贵是真的。
Cursor免费 GPT-4 IDE 工具的保姆级使用教程-阿里云开发者社区
在使用 Cursor 持续居高不下的 CPU 负载,你可能需要去设置里面把 embedding 整个项目关掉,这样会好很多。
安装完后,Cursor 会在第一次启动时提示你是否要导入你的 VSCode 配置,导入完成后,你基本上就拥有了 AI 增强版的 VSCode 了。
基本命令:
- Tab:自动填充
- Ctrl+K:编辑代码
- Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)
- Ctrl+i:编辑整个项目代码(跨文件编辑代码)
1、tab自动补全
与vscode其他代码辅助ai一样,当写代码是,会智能提示,此时按tab接受代码。
光标预测:
如下案例可以不用再搜索替换了,改了一处,会预测要一起改掉
修改一个后,光标自动出现补全提示,可以一路tab
2、 CTRL/CMD + L
打开对话框
vim 键位下的方向键是 h,j,k,l
,如下在编辑器后侧打开了一个对话框:
也可以选中部分代码后CTRL/CMD + L
类似于下面的CTRL/CMD +
K
如下使用对话框,ai完成操作后会显示改动和操作步骤,觉得无误后,点击下方apply all才会应用到修改的代码中
apply all后变动的文件左侧都会出现:如下文件是为保存的需要点击下方的Accept File或者快捷键:CTRL+ENTER键
3、CTRL/CMD + K
选中代码,CTRL/CMD + K调出对话框,此时生成内容依据的上下文会是你选中的内容,也可以选中空白区域,属于从0到1:如下对话框右下角可以选择模型
4、CTRL/CMD + I
使用 CTRL/CMD + I
能够打开 Cursor 的特殊功能:Composer。Composer 是 Cursor 的特色功能,它的功能就是在一个对话窗口里同时对多个文件进行修改。是专为整个项目设计的,可以通过和模型对话来开发整个项目,过程就和聊天差不多,在会话中可以帮助你创建文件、删除文件、同时编辑多个文件等功能。目前ctrl+L也可以从0到1开发整个项目。
5、@注记
为了更方便地向大语言模型提供上下文信息,Cursor 内设了不同地 @
注记,使用 @
注记能够方便地注入不同类型的上下文信息到你的对话里。
1)@Files
注记,传递指定代码文件的上下文
@后显示注记列表,选择Files,如下Cursor 会自动弹出对你代码仓库的检索列表,可以输入你想要导入上下文的文件名,而后按下确认键,相应的文件里的内容便会届时自动注入到上下文中:
按下确认键:@+指定文件
和下面直接add context一样,且可以直接从左侧目录里对应文件拖进来,效果是一样的:
2)@Code
注记,传递指定代码块的上下文
@后选择code(测试文件中只有一个函数getColumns):
点击选中后:
3)@Docs
注记,从函数或库的官方文档里获取上下文
@Docs
注记能够从函数或库的官方文档里获取上下文。目前,它只能从可访问的在线文档里获取上下文。因此,你自己写的类似于 JSDoc 之类的文档信息除非你能整一个线上地址。
为外部文档建立知识库进行问答的功能,可以在设置中加入文档,例如加入开发文档作为Cursor的知识库来更好的辅助编程。
点击Confim后:
也可以直接在设置里先加入:
4)@Web
注记,从搜索引擎的搜索内容获取上下文
@Web
注记类似于一种方法,它会默认将你的提问先向搜索引擎进行搜索,然后从搜索结果里提取上下文喂给 LLM。但因为 Cursor 官方没公开透明具体的实现法子,它自个也没调好,实际上使用效果忽好忽差的。
如果你遇到问题想偷懒不打开网页搜报错或是大模型自身的回答无法解决问题,你可以直接使用这个注记。
@后选择web:
拓展:让cursor参考在线API文档直接黏贴即可,黏贴后显示会多一个@(自动加的,相当于@Link):
5)@Folders
注记,传递文件目录信息的上下文
@Folders
注记能够提供文件目录的相关信息,如果你遇到什么路径问题,可以考虑使用这个注记向大模型寻求解决方法。
@后选择Folders
目录提示录列表选择了src目录,若是目录太多,可以直接从左侧目录里拖进来,效果是一样的
6)@Definitions
注记,只能在文件内的代码生成窗口里使用的注记
@Definitions
注记只能在文件内的代码生成窗口里使用(CTRL+K的对话框)。它会将你光标停留处附近的代码(上下的可能都会有,看位置)里涉及到的变量、类型等的相关定义作为上下文传递给大模型。
如下会把当前选中的代码块或者文件涉及的变量、引用等的定义显示出来:
7)@Git
注记,只能在对话窗里使用
对话窗指的是通过 CTRL + L
与 CTRL + I
打开的对话窗口。@Git
注记能够将你当前的 Git 仓库的 commit 历史作为上下文传递给大模型。
@后会显示commit历史记录列表供选择
8)@Codebase
注记,只能在对话窗里使用,用于在代码仓里扫描相应的文件传入
@Codebase
就是针对整个代码仓库进行提问和编辑,这个功能可以帮助快速上手一个新的项目或者找到项目中的关键组件。
设置里需要开启(默认是开启的,如下是关闭了):
以下配置会计算整个项目目录文件的索引,方便cursor更深入的理解整个项目,其中Hide Settings中有些隐藏的配置:
第一个:开启时新增加的文件夹会默认创建索引,也可以自己手动点击Compute Index来更新索引
第二个忽略文件配置:比如前端项目node_modules文件夹以及一些静态资源等,一般开发不需要cursor理解可以点击后面红色框在忽略文件里配置
第三个:开启时会把git的提交历史记录也创建索引,这样的话方便Cursor了解整个代码仓库变动过程
默认开启状态如下,可以删除索引,重新计算等,注意项目越大计算索引越慢
9)@Notepad
如下左侧目录结构中最下面有一个NOTEPADS,里面可以出创建NOTEPAD文件,一般是用来写需求的,@后可以添加对应需求为上下文
10)@Lint errors
主要是用来代码规范检查的,如下先@Lint errors在@Files 之后提交,就可以对指定的file进行代码规范检查
提交后:
面板介绍:
1、右侧面板:
+号点击后会新建对话,之前的对话信息都没有了,在下方Previous chats可以看到之前的,但是只是部分最新的
+后面的图标或者下面的View all:点击后会显示所有对话历史记录:
如下对话历史记录:会显示所有对话,不仅仅是chat,composer的对话也有,且可以编辑对话名称,可以删除(注意删除后无法找回)
最后面的三个点:
1)、chat种只有一个
点击后变成和文件一样的:如下点击...种的Open as Pane恢复
2)、composer中有两个:
第一个和上面一样,第二个作为bar会悬浮出来:按住可以随意拖拽,不需要了可以点击右上方的X号关闭即可,在CTRL+i出来的还是在右侧Panel中的形式。
2、生成的对话内容介绍
Chat中:
1)对话结束后最下面的拷贝按钮,点击后可以拷贝生成的全部对话内容
2)单行描述解释文案后面的按钮:
第一个按钮点击后直接放到上下文里方便针对此行继续提问,如下:
第二个按钮就是拷贝,可以拷贝后黏贴到对话框中再提问。
3)生成的代码框中的内容:
如下鼠标悬浮出现三个按钮,前两个和2)一样的功能,后一个是apply到文件中
Composer中:
composer中描述文案后面没有操作,最后的保存按钮存在,生成的代码框操作不同,且多了上面的restore和最下面的Review changes
1)restore:
点击后如下提示,告诉你可以恢复修改,此操作是撤销本次修改
点击后下面会出现如下,点击后会恢复刚才的修改
2)Review changes:
点击后可以看到所有的变更列表,之后后面有的reject和accept操作,对于所有变更可以一个一个决定是保留还是reject:
3)代码框后面的提示
第一个按钮拷贝、第二个恢复、第三个reject 第四个apply 第五个按钮:如下是对比形式的代码(有绿色的色块)点击可以切换展示最后的代码还是这种带对比形式的
注意下面有accpect all,上面的第三个按钮reject点击后,就是接受全部除了该文件,即单独代码块上的操作只影响自己不影响其他文件。
说明Save all和Accept all的区别:
当Composer生成代码后,可以看到左侧生成了对应的目录以及文件,点开的话也可以看到代码,但是文件显示是未保存的状态,文件最下面还是显示是要Accept File还是Reject,此时预览看不到效果,此时点击Save all就可以预览看效果,如果满意再点击Accept all不满意点击Reject all,但是生成的代码看注释就觉得没问题,此时不需要预览了就直接点击Accept all即可,即二者区别是Save all可以先看看效果,但是还可以reject掉,但是Accept all是没有反悔的机会的,直接就全保存了代码了,只能通过Restore恢复了(Restore恢复的话,本轮对话生成的文件会删掉但是目录还存在需要手动删除了,若是误点的,那么在用同样的对话在生成一边有时候可能会导致对话混乱,可以新开个对话再执行)
chat和composer区别:
chat使用完需要点击apply才可以写入文件,composer自动生成文件,且agent模式,若是生成的代码用到了第三方那么可以自动安装
@注释和选择上下文基本一致,包括模型选择和图片上传(图片可以拖入、可以点击上传、可以复制黏贴),大多数功能一致
chat:提交有两种,基本建议都是后者,前一个除了手动点击,默认是不使用submit的
composer:
agent模式:生成代码后会自动检测是不是需要安装,需要的话会自动安装后自动执行,执行过程中出错会自动修复之后在执行,直到代码运行基本没有错误了才结束对话。
需要开启一些配置:如下默认不开启
不开启的话,agent模式在遇到需要执行命令时,会停下来,让你确认是否要执行,不点击会一直等待,需要执行点击蓝色按钮:
若是需要自动执行不需要询问就要开启上面的配置,开启后如下:
- Yolo prompt:设置prompt告诉cursor哪些命令可以自动执行不需要询问,此处不配置,可以配置下面的两个
- Command allowlist:命令白名单,既可以自动执行的命令,如设置的python、docker等
- Command denylist:命令黑名单,如delete、rm等非常危险的删除操作,需要像上面一样,询问,不自动直接删除。
- Delet file protection:删除文件保护,开启后会阻止agent自动删除文件,仍需要询问
如下:在安装vite时出错了,尝试用yarn,又失败了,又尝试用pnpm,又失败了,最后采用手动创建文件,最后执行npm install(所以说agent模式下自动执行安装且会检测代码规范等,不符合或出错会尝试解决,直到修复完才结束对话)
如下还会进行代码规范检测:
注意:若是遇到不自动执行安装时(大多数会自动执行)那么对话时可以明确说明要求安装第三方库并执行程序
3、生成的代码:
代码块后的accept和reject都只当前修改的代码块,最下面的是指整个文件
4、Cursor设置
右侧最上面:
如下:
- General通用配置:比如rules等
- Models:大模型配置,可以新增和选择模型
- Features:Cursor功能配置,如自动补全tab功能、chat和composer配置等
- Beta:其他功能,暂时未用过,如 bug Finder
新增模型:
新增模型后composer不一定能使用,如注册的SiliconFlow, Accelerate AGI to Benefit Humanity新注册并验证身份后有可以免费使用一定额度的模型,试过新增后不能使用composer功能
Cursor Rules配置-配置提示词:
设置里有Rules配置,如下,在rules中可以设置整个代码块的代码风格、规范等,还可以告诉AI是前端工程师还是后端,擅长什么技术,对代码的要求等等,就是AI的prompt(提示词),用来引导 AI 生成特定类型、风格或内容的输出。
注意看上面的说明,rules配置生效的范围。下面有个配置Include .cusorrules file,即Rules是全局的,即打开的所有项目对话都会受这个配置影响,那么若是前端项目和后端项目代码规范不一样怎么办,此时就需要下面的配置.cusorrules文件,即该文件是项目级的,前面勾选了对号,若项目中存在.cusorrules文件,则以.cusorrules文件优先,若是去掉勾选即使存在也会忽略,全局的rules优先。
rules这里有很多参考https://cursor.directory/
案例:加入内置System prompt
如下安装提示时的配置,语言输入了中文:
经常写prompt的小伙伴一定知道System prompt的作用,可以帮助大模型更好的了解自己的职责和用户的行为习惯,从而更精确的回答问题。在设置中添加Rules for AI添加System prompt
具体的prompt如下:
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。## 第三步
在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中
案例2:生成项目历史文件
上面提到的.cusorrules文件,在里面加入一段话可以自动维护项目的变更历史,之后多轮对话,或者多人等操作,Cursor可能会丢失上下文,@这个变更历史,可以让Cursor更准确地了解项目的迭代,从而更精准的回答问题:
如下在初始化项目之前先让cursor把那个我们创建一个.cursorrules文件,之后在文件中加入如下内容(注意不要让其写具体时间,目前生成的时间要么不准确要么乱码):
每一次会话请求结束后进行会话总结,无论生成新文件还是修改已有文件都需要做总结,并将总结内容Append写入到Readme.md文件中(说明文件中的内容是累积增加的)。
总结内容应包括:
-会话的主要目的
-完成的主要任务
-关键决策和解决方案
-使用的技术栈
-修改了哪些文件
-文件的修改内容
//....代码风格等......
之后用agent模式初始化项目:
基于react+vite+ts生成项目的基础架构,要求包含必要的文件且可正常运行
基于react-router-dom建立路由,要求有首页、关于我两个路由,只需要必要的文件,页面后面再设计
执行完后,如下自动生成了README.md,内容如下,以后每次的更改历史都会写进去:
# React + Vite + TypeScript 项目
这是一个使用 React、Vite 和 TypeScript 搭建的现代化前端项目模板。
## 技术栈
- React 18
- Vite 5
- TypeScript 5
- ESLint
- CSS Modules
## 开发
首先安装依赖:
```bash
npm install
```
然后运行开发服务器:
```bash
npm run dev
```
## 构建
构建生产版本:
```bash
npm run build
```
## 预览
预览生产构建:
```bash
npm run preview
```
## 代码检查
运行 ESLint 检查:
```bash
npm run lint
```
## 更新日志
### 2024-01-17 添加路由功能
#### 会话主要目的
- 基于 react-router-dom 实现基础的路由功能
#### 完成的主要任务
- 创建了基础的路由结构
- 实现了首页和关于页面的路由配置
- 添加了导航栏组件
#### 关键决策和解决方案
- 采用 React Router v6 实现路由管理
- 使用 BrowserRouter 作为路由模式
- 实现了简洁的导航栏设计
#### 使用的技术栈
- React Router DOM
- TypeScript
- CSS Modules
#### 修改的文件
- 新建 `src/pages/Home.tsx`:创建首页组件
- 新建 `src/pages/About.tsx`:创建关于页面组件
- 修改 `src/App.tsx`:添加路由配置和导航栏
- 修改 `src/App.css`:添加导航栏样式
#### 文件修改内容
- `Home.tsx`:实现首页组件,包含基础的页面结构
- `About.tsx`:实现关于页面组件,包含基础的页面结构
- `App.tsx`:
- 添加路由相关导入
- 实现路由配置和导航结构
- 移除原有的计数器示例
- `App.css`:
- 添加导航栏样式
- 添加导航链接的交互效果
如何免费使用:
Cursor 强大是因为有 claude 3.5,目前cursor体验只有2周,所以你要么开通 Cursor pro,要么有其他优秀模型的 sk-key。
订阅参考:【包教包会】怎么订阅Cursor Pro?Cursor Pro 会员付费订阅详细图文教程 | 进击的胖虎
以下是几种免费体验的方式:
1、在 Cursor 中退出当前到期账号,谷歌搜索临时邮箱,重新注册登录,原有的cursor配置不会被清除,依然保留,白嫖成功~
但是:有很多人说邮箱反复更换会被限制。建议使用谷歌邮箱或者是微软邮箱。
2、CURSOR VIP/help
多人共享一个pro账号:GitHub - kingparks/cursor-vip: cursor IDE enjoy VIP
重置试用期是测过有效,但是要注意同一个ip切换过多账号都存在被封的可能
3、使用其他模型:
配置模型和密钥:
基本设置说明:
设置编辑器菜单显示为中文(和vscode一样):
1、安装插件:
2、设置语言:
Ctrl+shift+p=>输入lan选择如下=》选择语言:
选择语言:
2、上面面板是水平显示的,可以设置成和vscode一样垂直显示的:
ctrl+shift+p=》搜索vscode:选择如下
之后输入:workbench,如下设置改成vertical
重启后如下:
3、开启部分补全:如下可以按住ctrl一直右键而不是tab全部接受可以选择部分
要开启如下配置:
案例:
Ctrl+L弹出对话框
输入:我想要创建一个微信小程序,请帮我创建完整的微信小程序的目录和所有必需的文件,保证其可以运行。
Cursor执行过程:
点击apply all:最终输出目录结构如下:
输入:我想要做一个基于音标来背单词的小程序,首页有三个功能,第一个功能是背单词,第二个功能是,查看我背过的单词,第三个功能是登录与注销。请你先完成页面设计,我们再逐渐开发功能。
效果:
输入:在背单词页面顶部,有一个选择音标的功能,点击选择音标,展示国际音标列表,展开后可以选择对应的音标
效果图:
修改分类:标分类修改下,分成三类:单元音、双元音、辅音
选择音标后的逻辑-输入:
每次选择音标时,请使用下列的api,获取该音标下的50个单词,获取到背单词的列表,然后可以左右切换:
示例:
curl --location --request POST 'https://yuanqi.tencent.com/openapi/v1/agent/chat/completions' \
--header 'X-Source: openapi' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data-raw '{
"assistant_id":"XRVzqYS3c2jD",
"user_id":<userid>,
"stream":false,
"messages":[
{
"role":"user",
"content":[
{
"type":"text",
"text":"你是谁"
}
]
}
]
}'
我的智能体ID是:XRVzqYS3c2jD,我的Token是:oevUaumxui17Cj5CVBUs6H88tSFADxdy
@https://docs.qq.com/aio/p/scxmsn78nzsuj64?p=unUU8C3HBocfQSOGAh2BYuC
内容时丢失了部分内容:
输入:背单词页面显示不对,修复下
输入:点击选择音标没反应
使用腾讯元器官方api有限制,请求很慢=》请求完存起来,即如下开通云开发,点击云开发:
小程序教育版开通不了,点击开通会报错,但是返回后再点击可以使用:
我希望基于微信云开发,建一个音
标数据库,通过该云数据库,来索
引所有的音标,这样,我们可以通
过api请求,把音标存到云数据库
上,然后每次我们不需要再请求
api,而是直接请求云数据库即
可。我的云环境id是:education-1g9fjah420cf25e9。
目前教育场景的 resourceAppid 都是固定的 "wx3199c80279c7b8c3",请不要填写自己的小程序 appid。
所有教育场景的云开发模板,都必须使用教育平台的账号进行开发,请勿使用自己的云开发项目。
因此可以拷贝下面的代码使用:
var c1 = new wx.cloud.Cloud({
// 资源方 AppID
resourceAppid: "wx3199c80279c7b8c3"
resourceEnv: 你们的共享云环境id
})
// 跨账号调用,必须等待 init 完成
// init 过程中,资源方小程序对应环境下的 cloudbase_auth 函数会被调用,并需返回协议字段(见下)来确认允许访问、并可自定义安全规则
await c1.init()
// 完成后正常使用资源方的已授权的云资源
await c1.callFunction({
name: '函数名',
data: {},
})
// 完成后可以通过初始化的共享环境对象,去下载云存储资源,例如
const task = c1.downloadFile({
//...
})
编译后报错,报错误完整拷贝,丢给cursor:
代码里定义了云数据库的集合名:
在运开发平台新建一个对应的集合:
输入:我希望在背单词的页面上,单词的旁边有一个小喇叭,点击后可以播放单词的声音。
输入:背单词页面下方添加认识和不认识按钮,点击认识或不认识可以自动跳转到下一个单词
最终效果:
学习记录页面:
输入:学习记录中,新增两个按钮,一个是认识的单词,另一个是不认识的单词,点击后,进入到各自的页面,展示所有的音标(按照单元音、双元音、辅音分类),然后展示该音标下所有的认识和不认识的单词
输入:我希望在背单词的页面,点击认识和不认识的时候,可以把这些单词,分别用一个新的数据集合记录下来,然后在学习记录的页面重新展示。
需要创建新的集合=》在云开发中新建:
点击没反应:
输入:在学习记录页面,点击没反应,请修复