目录
Cursor主要功能是根据用户的描述写代码或者进行对话,对话的范围仅限技术方面。优点是不用翻墙、不需要账号。Cursor基于GPT模型,具体什么版本不祥,有人说是GPT-4,但是官方没有证实,但这并不影响Cursor的强大。目前Cursor是免费的,但是偶尔会出现"Maximum Capacity",据我观察并不频繁;如果不想看见这个提示可以付费,每月20美金,具体怎么支付我就不介绍了,反正你也不会花钱。
下载地址:Cursor | Build Fast
Cursor可以干什么?
1.写代码,可以写一些相对独立的逻辑代码块,实现一些逻辑算法是他的强项。
2.改bug,无论是Cursor自己写的还是粘进去的代码都能改,把报错给他,它就可以自动改代码了,当然主要是改一些独立的算法或者逻辑比较优秀,如果你觉得改的不好,可以跟它聊聊,了解一下报错原因。
3.对话,可以跟它聊技术方面的所有话题,回答基本靠谱,用于学习一些新的技术很友好。如果想撩他,你会得到下面的结果:

4.值得注意的是Cursor本身并不具备某种语言的运行环境,让它写完代码还有乖乖粘贴到IDE中。
5.如果Cursor的回答是英文的,不要找语言设置功能,因为没这功能,直接跟他说“用中文告诉我”就行。
Cursor页面很简洁,常用的就两个功能:写代码(Ctrl+K)和对话(Ctrl+L),我下面我举一个例子说明一下两种功能的用法,其实很简单。
点击机器人图标,然后点击“Generate”按钮(Ctrl+K)

输入你的需求,尽量把需求写的详细,如“用Pytorch+LeNet生成图像分类算法” ,Cursor随即开始生成代码。

如果逻辑简单代码短就没有问题,如果代码太长没有生成完(如上图),可以选中最后一行然后Ctrl+K,输入“继续”,就可以生成完剩下的代码了。

继续生成完的代码如下,点击Accept All就可以了。

将代码复制到IDE中直接运行即可,但是在windows这段代码是报错的,报错信息如下:

没关系,到Cursor中,全选代码然后Ctrl+K,将报错复制进去

然后Cursor就会开始自己修改代码了。

点击Accept All,代码改完就能运行了。
如果想了解这个报错,不想让他直接改,代码全选然后Ctrl+L,将异常粘进去,可以看到解释。记得加一句“用中文解释这个报错”。

解释如下:

如果对某些代码不明白,也可以选中代码直接问他,如:

还有如下几个我用过的例子。
这对我来说可以说非常实用了,我再也不用瞎编正则表达式了。我的输入是
用java写程序 功能是从html中提取出img和video的src属性
结果如下:

可以用Cursor生成一些简单的自动化测试脚本,如果有特别复杂的逻辑,则需要把逻辑写清楚,或者先用Cursor写一个骨架,然后自己继续写。比如我的输入是
用python+selenium写web页面测试脚本,被测试的页面有及格input元素,它们的id分别为 "user_name""email""address",其中 "user_name"和"email"是必填项,"address"是选填项,提交地址为http://xxx.com
结果如下:

我问了一些spring cloud方面小白的问题:

Cursor还有很多应用场景,我只发现了冰山一角,更多精彩内容,需要自己发现咯。
还想了解更多关于ChatGPT?跳转:ChatGPT应用场景与工具推荐
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru
我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的