接下来,我想分享一些我在使用Cursor时的具体体会和感受。
1.Chat功能:
这个功能有时真的堪称技术上的“大牛”。无论遇到什么问题,我都可以向它请教,尽管偶尔会出现一些错误,但它总能提供有价值的建议。有时,它就像一个同事,能够与我讨论解决方案和实现思路,帮助我理清思路;有时,它又像一个高效的助手,协助我完成一些琐碎的工作,大大减轻了我的负担。
首先界面说明
①这里可以打开/关闭 Chat 界面; ② 这里点击可以重新开始一个会话 ; ③ 看过往的记录
④ 通过点击“+”号,可以上传文件。结合@Folder、@Codebase等标签,甚至可以将整个代码目录或代码作为问题的一部分进行提交。
⑤ 切换模型,个人感觉OpenAI的模型在讲解、翻译和方案探讨等方面表现优异,而Claude则在代码处理方面更为擅长。当然,这也可能只是由于模型对中文理解的差异造成的错觉。
结合自己使用的经历,简单举几个例子
1.1,帮助快速的理解出错,迅速分析原因及解决方案。
比如:不管是环境问题,配置错误,代码错误,还是其他问题,他都能迅速的提出解决方法!!
1.2,协助完善代码
比如把代码贴给他加上提示:
我想构建一个聊天画面,我的消息部分显示的似乎不大好,比如进度条都被上下的div遮盖了,我不知道如何优雅的实现,请帮忙
他提供了修改后的代码,并且加上说明:
这些修改主要包括:
1,使用 flex 布局来更好地组织整个聊天界面的结构。
2,将消息列表部分设置为 flex-1 并添加 overflow-y-auto,使其可以自动滚动。
3,简化了消息气泡的样式,使其更加紧凑和美观。将输入框部分固定在底部,并稍微调整了其样式。
4,添加了一个简单的 chatMessages 数组来模拟聊天消息。
<...略...>
这个结构应该能解决滚动条被遮挡的问题,同时提供了一个更加清晰和易于使用的聊天界面布局。
您可以根据需要进一步调整样式和功能,例如添加发送消息的逻辑、区分用户和AI的消息等。
比如把DDL贴给他,
整理下SQL,修正可能的拼写错误并统一字段名,大小写
就能整理SQL。
这才是第一步,通过描述,你可以要求他输出复杂的SQL文,虽然不一定正确,但是他会提醒你注意到你都不知道的一些有用的函数甚至是一些玄妙的技巧。我就是通过AI才知道 COALESCE(GROUP_CONCAT(kp.keyword , ‘,’), ”) AS keywords, 这种写法 (也许我少见多怪)
1.3,解决方案的探讨。
比如:把两个画面的VUE代码带上,加上 ‘’VUE组件间如何较好的传递数据’‘’ 提示词。就会返回
在 Vue 组件间传递数据时,可以使用以下几种方式:
1,Props 和 Events:父组件通过 props 向子组件传递数据,子组件通过 events 向父组件发送数据。
2,Vuex:使用 Vuex 进行全局状态管理,适用于复杂的状态管理需求。
3,Provide/Inject:在祖先组件中提供数据,在后代组件中注入数据。在你的例子中,已经使用了 props 和 events 来传递数据。
以下是一个简单的示例,展示如何在父组件和子组件之间传递数据<...略...>
一般开放型的提问他都会有多种回答,然后通过问答,他也能提供代码和讲解。非常之深入浅出。
1.4,翻译,式样书,注释等内容的撰写。
在进行多语言化时,基本上只需要提供一种语言的消息文件,简单地给出一个提示词,比如:
参照日语的JSON消息文件,帮我生成英语的JSON消息文件
就能轻松获得很好的结果。
类似地,还可以使用提示词来处理不同的需求,例如:
理解这个类,帮我撰写该类各个方法的日语说明
或者
请根据Controller类的代码,帮忙撰写API接口的MD5文件说明
当然,反向操作也是完全可行的。
2,代码自动生成 CursorComposer (Ctrl+I)
这个功能则是Cursor特有的功能,可以说非常强。从本质上讲,我个人的理解,其实他就是对Chat回馈的一种封装,但是做的非常优秀,直接把代码剥离出来,并且有时候目录结构都帮你直接生成。给人的感觉就像是一个代码高手。不仅可搭建框架,还能够按照我的思路 范本代码,自动生成相似的代码,帮助我快速完成所需的功能。这让我在开发过程中省去了大量手动编写的时间,同时确保代码的一致性。
2.1,示例代码的搭建。 Ctrl+I呼出
①菜单:比如可以调出历史记录; ②刷新,放弃目前的操作 ③选择模型 ④添加必要的文件
比如输入提示词:‘’我需要一段简单的Java写的Springboot例子,实现用户表增删改查 RESTAPI,数据库是MySQL,我需要起码的授权验证,使用中文说明,日语代码注释‘’ 选择Claude3.5模型
直接把整套代码都直接输出完成了,用于学习,代码示例,等等都非常OK。
类似的提示词使用本地Ollama下运行mistral-small模型(大概12G显存占用)的产物,大家可以下载尝试比较。
2.2,根据范例代码模拟撰写。
我觉得真实项目中用的比较多的可能反而是这个,比如 在①追加了相关文件(比如类文件,数据库表的DDL)然后提示词:
请根据我的UserController撰写CompanyController
实践检验效果非常好。
其他有用的使用方法:
清理掉这个类里所有的console.log输出
把这个类里所有的方法加上日语注释
把这个类里所有的中文输出改成日语输出
等等各种活用,让你事半功倍。
3,其他功能
小对话框,(Ctrl+K):
这个快捷键功能则像一把小瑞士军刀。无论何时遇到小问题,你都可以调出,解决问题。
自动补全CursorTab
这是Cursor独有的一项功能,类似于Github的Copilot和Amazon Q的Whisper,但我个人感觉它更强大。它常常给人一种仿佛它能读懂我想法的感觉,像肚子里的蛔虫一样,我刚有一个念头,它就能迅速推理出我要的代码。这种超高的响应速度和智能程度,不仅提升了我的编码效率,还让我在开发过程中更加得心应手,甚至感受到工作变成了一种享受。
比如,当我输入 expo
时,它不仅即时补全了第一行,按下Tab之后,CursorTab还自动补全了整段完整的代码方法:
最后
事实上,所有的功能都可以通过不同的方式实现,无论是通过ChatGPT或Google Gemini的页面访问,还是使用像Github Copilot或Amazon Q这样的插件,甚至通过本地运行的模型(如Ollama)配合CodeGPT插件,甚至都能实现并摆脱网络依赖。这些都是可能的,关键在于要积极使用,并对这些技术保持敏锐的感知。
这些例子仅是我的个人体验。每个人在深入使用AI后都会有不同的看法,我的分享只是抛砖引玉。当前阶段,即便是再先进的AI模型,其提供的答案仍需验证,不可能一蹴而就。然而,无论如何,AI正以难以预料的速度飞速发展。无论结果如何,AI终将深刻改变我们程序员的职业生涯。