Cursor 软件配置与使用技巧
一、Cursor 简介
Cursor 是一个基于 VSCode 的集成了 GPT4、Claude 3.5 等先进 LLM 的 IDE。Cursor 兼容了 VSCode 的全部功能,并且在此基础上,增加了 AI 辅助编程的功能。与 VSCode 一样,Cursor 支持多种编程语言,包括 Python、JavaScript、TypeScript、Go、Rust 等。
二、AI 辅助编程的重要性
AI 辅助编程 ≠ 与大模型对话(或者给大模型下命令)!!!!
目前来说,很多开发人员在编写代码时,是基于搜索引擎或者与大模型对话来完成代码的编写。并没有充分利用大模型的能力,只是把大模型当作一个搜索引擎来使用。
很多学生开发者,在编写代码时,甚至不和大模型对话,仅仅是不断重复给大模型下命令,让大模型给出代码。这是一种效率很低的方式。
在大模型快速发展的今天,率先掌握大模型编程的技巧,可以大大提高开发效率,提升个人竞争力。
AI 辅助编程的三个阶段:
- 给大模型下命令
- 与大模型对话
- 在用户开发经验与本地知识库的基础上,使用大模型辅助编程
三、Cursor 的安装与基础配置
1. 安装 Cursor
Cursor 的安装很简单,直接在 Cursor 官网 下载安装即可。
2. Cursor 的 UI 配置
Cursor 的导航栏位置默认为横向,但是 VSCode 的导航栏位置默认为纵向,因此习惯了 VSCode 的开发人员可能会不习惯。
调整方法:
- 使用快捷键
Ctrl + Shift + P
打开命令面板 - 输入
VS Code Settings
,打开 VSCode 的设置 - 搜索到
workbench.activityBar.orientation
,设置为vertical
- 重启 Cursor
3. Cursor 的 LLM 配置
点击右上角的设置,即可配置 LLM 模型。
Cursor 内置了很多 LLMs,包括最先进的 GPT4s、Claude3.5s 和 openai 最新发布的推理模型 o1-preview 和 o1-mini。
平时用的最多的还是 Claude3.5 和 GPT4,代码能力与语言能力都很强。
四、Cursor 的使用技巧
Cursor 中有四个最为常用的快捷键,分别对应四种常用操作:
Tab
:编程时的自动填充Ctrl + K
:编辑当前代码文件Ctrl + L
:回答用户关于代码或整个项目的问题,也可以编辑代码(功能更全面)Ctrl + I
:编辑整个项目代码(跨文件编辑代码)
1. 使用 Tab
键自动填充
该功能较为简单,不再赘述。
2. 使用 Ctrl + K
行内对话
在代码空白处或者选中代码块,按下 Ctrl + K
,即可在聊天框内提出需求,Cursor 会根据需求自动生成代码,然后用户可以选择 Accept
或者 Reject
。
3. 使用 Ctrl + L
进入聊天界面(最为常用)
在代码空白处,按下 Ctrl + L
,即可进入聊天界面。
用户可以通过输入 @file
引用不同的代码文件。
用户也可以通过输入 @Codebase
引用整个项目。
4. 使用 Ctrl + I
开发整个项目
Ctrl+I
是专为整个项目设计的,可以通过和模型对话来开发整个项目,在对话中可以帮助用户创建文件、删除文件、同时编辑多个文件等功能。
5. 使用外部知识库
使用外部知识库,可以作为项目开发时的参考文档。
设置方法:
- 使用快捷键
Ctrl + Shift + J
进入 Cursor 设置界面 - 点击
Features
选项卡 - 在
Docs
选项卡中填入外部开发文档的链接
在使用 Ctrl + L
进入聊天界面时,输入 @docs
,即可引用外部知识库中的内容。
6. 使用提示词
Cursor 设置中,可以设置提示词。
其实,很多情况下,Cursor 的默认提示词已经足够使用,不需要用户自己设置。
五、Cursor 无限试用
Cursor 的免费试用次数有限,如果想要无限试用,可以使用 2925 无线邮 注册新账号,然后使用新账号使用 Cursor。
但是,现在 Cursor 删除账号再登陆后,出现提示“Too many free trial accounts used on this machine.”的问题。这是因为 Cursor 的账号检测机制,检测到该账号登录电脑的机器码一致。可以通过修改电脑的机器码来解决,解决方法参考Cursor 无限试用。
也可以手动修改 Cursor 的配置文件,配置文件路径为 C:\Users\lsy\AppData\Roaming\Cursor\User\globalStorage\storage.json
。
将下面的字段修改为随机字符串,即可解决该问题。
{
"telemetry.macMachineId": "random_string_1",
"telemetry.machineId": "random_string_2",
"telemetry.devDeviceId": "random_string_3"
}
修改完之后可以将 storage.json
文件修改为只读,防止被修改。