首页 > 其他分享 >Cursor 介绍与基础生成用法

Cursor 介绍与基础生成用法

时间:2024-02-23 18:13:01浏览次数:26  
标签:代码生成 arr 代码 生成 Cursor 测试用例 用法

Cursor 介绍与基础生成用法

实验介绍

Cursor 是一款与 OpenAI 合作并且基于 GPT-4 的新一代辅助编程神器,国内直接可以访问,它可以根据你的输入和需求自动生成代码片段,还可以帮助你重构、理解和优化代码,提高开发效率。在本节课程中,我们将介绍 Cursor 的基本使用方法。

知识点

  • Cursor 安装
  • 代码生成
  • 注释生成
  • 测试用例生成

安装 Cursor

Cursor 官网地址:https://www.cursor.so/,当前支持 Mac 、Windows 和 Linux 操作系统。

图片描述

Cursor 操作界面与 VSCode 类似:

图片描述

同时 AIGC 功能也特别简单,只需要记住两个快捷键即可:

  • Windows,Linux 平台:Ctrl + K 智能生成代码;Ctrl + L 进行对话。
  • Mac 平台:Command + K 智能生成代码;Command + L 进行对话。

当前课程的演示,Cursor 版本为 0.2.2,接下来,我们将介绍基本的生成使用方法。

代码生成

代码生成属于最基本的功能,接下来让我们开始实践,首先创建一个空白文件,然后使用自然语言让 Cursor 生成一个 Python 的 mp4 读取函数。

generate a python mp4 reader function by OpenCV

Cursor 同样支持使用中文进行编程:

生成一个 Python 函数,用于读取 mp4,使用 OpenCV 库

因为在 GPT 训练语料中,英文语料的占比最高,因此使用英文生成的文本质量最好,在后续步骤中,我们将使用英文。

Cursor 当然也可以通过定义函数名来生成代码,以下例子是先定义 Python 快速排序的函数名与类型提示:

def quick_sort(array: list): -> list

注释生成

除了代码生成,还可以让 Cursor 对你的代码生成注释,以下用例是让 Cursor 生成冒泡排序算法的注释、文档和类型提示:

generate comments, docstring and type hit

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

测试用例生成

除了代码和注释,Cursor 还可以辅助你生成代码的测试用例,同时可以指定测试方式,以下用例是让 Cursor 使用 unittest 生成冒泡排序的测试用例:

generate test script by using unittest for this function

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

如果觉得测试用例太少,还可以继续生成:

generate more test case

实验总结

本次实验中,我们详细介绍了 Cursor 的基本使用方法。我们学习了如何安装和配置 Cursor,以及如何使用 Cursor 进行代码生成、注释生成和测试用例生成。通过本实验,我们可以更好地理解和掌握 Cursor 的功能,从而提高编程效率和代码质量。

接下来,我们将介绍 Cursor 更高级的使用方法。

标签:代码生成,arr,代码,生成,Cursor,测试用例,用法
From: https://www.cnblogs.com/xzemt/p/18030124

相关文章

  • 多线程系列(八) -ReentrantLock基本用法介绍
    一、简介在之前的线程系列文章中,我们介绍到了使用synchronized关键字可以实现线程同步安全的效果,以及采用wait()、notify()和notifyAll()方法,可以实现多个线程之间的通信协调,基本可以满足并发编程的需求。但是采用synchronized进行加锁,这种锁一般都比较重,里面的实现机制也非常复......
  • 医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来
    医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性1.指令数据集构建目前大多数开源的ChatLLM项目使用的是其他模型(如:ChatGPT)生成的指令数据,其不可避免的存在数据幻想的问题,数据幻想问题将严重影响LLM在实际场景中的应用......
  • C# this的五种用法
    https://blog.csdn.net/qq_38693757/article/details/126305183一、需求一般来说,this仅仅局限于对象内部,对象外部是无法看到的,这就是this的基本思想,在我们的项目开发中,this关键字用的并不多,这也导致有些程序员对它的认识就不充足,有些知识点就会错过,this的功能绝对不是网上一些课......
  • iPaaS生成数据库接口只要60秒?
    “iPaaS生成数据库接口只要60秒?”关于“iPaaS生成数据库接口只要60秒?”的说法,这实际上反映了iPaaS解决方案的一个重要优势:高效率。确实,借助iPaaS平台的现成集成工具和模板,用户可以迅速创建连接到特定数据库的接口。低代码开发平台提供了一个简化的、图形化的编程环境,允许开发者......
  • 医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来
    医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性1.指令数据集构建目前大多数开源的ChatLLM项目使用的是其他模型(如:ChatGPT)生成的指令数据,其不可避免的存在数据幻想的问题,数据幻想问题将严重影响LLM在实际场景中的应用......
  • reduce()的用法
    array.reduce(function(total,currentValue,currentIndex,arr),initialValue)注释:对没有值的数组元素,不执行reduce()方法。注释:reduce()方法不会改变原始数组。参数描述total必需。initialValue,或函数先前返回的值。currentValue必需。当前元素的值。inde......
  • 最小生成树证明
    \(Prim:\)证明:(人话):在这个图中假设当前距离集合最短边是\(u->v\),那么假设它不在任意一棵最小生成树中那么在最小生成树中,\(u->v\)必然存在其他边相连,并且在这之中,一定存在从集合到外的一条边(横跨切割的边)\(x->y\),(因为u,v不在一个集合中,如果不存在那就不可能走出集合)......
  • 多线程系列(七) -ThreadLocal 用法及内存泄露分析
    一、简介在Javaweb项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,打破层次之间的约束。比如下面这个HttpServletRequest参数传递的简单例子!publicclassRequestLocal{/***线程本地变量*/......
  • 9.Polly在NET中的使用,重试、熔断、超时、降级、限流简单用法
    Polly是一个.NET弹性和瞬态故障处理库,允许开发人员以Fluent和线程安全的方式来实现重试、断路、超时、隔离、限流和降级策略。文档: https://gitee.com/hubo/Polly重试(Retry)出现故障自动重试,这个是很常见的场景,如:当发生请求异常、网络错误、服务暂时不可用时,就应该重试。......
  • wget、axel、aria2区别与用法
    首先区别是:wget、axel和aria2都是在命令行下使用的下载工具,但它们在功能和特性上有一些区别。wget是最基础的命令行下载工具,它支持HTTP、HTTPS和FTP协议,并且可以在慢速或不稳定的网络连接下保持健壮性。如果下载过程中发生网络问题,wget会尝试重新下载,直到整个文件下载完成。此外......