cursor究竟如何使用?
cursor使用
一.三大核心AI功能
1.tab键只能小助手
具有强大的代码自动补全,
tab接受建议,也可以按esc拒绝建议,部分接受建议需要ctrl+→
已有代码片段,按tab进行生成
1.1单行多行代码不全
# 生成冒泡排序
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
arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))
1.2智能代码重写
import random
# 生成冒泡排序
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
arr = [random.randint(0, 100) for _ in range(100)]#随机生成100个数
print(bubble_sort(arr))
ctrl+/可以注释代码
1.3多行协同优化
1.4光标位置预测
2.chat对话模式
使用CTRL+L快速调取侧边栏聊天
可以提出问题,请求代码编辑,获取建议等
主要功能
- 了解代码块进行修改
- 了解代码库并组合在一起
- 根据错误进行修改
ctrl+L实现代码
- 代码生成类
[任务类型]:生成{任务描述}用{编程语言}实现
[具体要求]:
1.使用特定库
2.包含功能
3.特定规范
使用HTML+css生成一个学习计划
要求:
1.使用tailwind Css 和font awesome
2.包括任务添加、编辑、删除
3.包括日历展示学习计划
4.包括学习进度可视化图表
5.符合响应式设计
6.具有平滑的动画效果
- 代码修改类
[任务类型]:修改{上下文:具体代码片段},实现{功能}
[当前问题]:{现有错误}
[具体要求]:
1.保持{功能、结构}不变
2.使用{特定方法}改进
3.修复{具体错误}
帮我修改当前react组建,优化渲染功能。
当前问题:滚动卡顿
要求:
1.保持UI不变
2.使用react.memo和虚拟列表技术优化
3.添加性能监控日志
- 代码解释类
[任务类型]:解释{上下文:具体代码片段}的{具体方面}
[上下文]:{当前的技术栈}
[具体要求]:
1.不理解的语法
2.特定设计的原因
3.{潜在问题和优化点}
请解释python 代码的泛型约束和类型推导逻辑
上下文:这是用于数据验证的工具函数
具体问题:
1.这里为什么加 extend?
2.类型推导是如何工作?
- 流程自动化
[任务类型]:创建自动化流程{具体方面}
[具体要求]:
1.从{数据源}获取{数据类型}
2.结果保存到{位置}
3.触发{后续操作}
创建一个自动化流程,每天凌晨栋github获取仓库,保存到google sheets生成趋势图
要求:
1.使用github rest API
2.添加异常处理和邮件通知
3.生成周趋势图
- 命令辅助类
[任务类型]:命令要求{具体方面}
[具体要求]:
1.{执行具体操作}
2.{包含特定参数}
3.{处理操作}
提供在macOS批量压缩图片的命令行
要求:
1.将所有图片压缩至50%
2.显示每个图片压缩大小对比
3.保留原文件并在新文件添加--compressed
重点
- 提供上下文
- 分店描述
- 使用技术术语
- 明确边界
- 示例引导
chat的三种模式
2.1agent
- 自动化辅助:AI 主动分析上下文,实时提供代码建议、解释和补全。
- 适用场景:适合希望获得持续支持、提升编码效率的开发者,尤其适合新手或需要快速解决问题的情况。
- 优点:减少中断,提升流畅度,适合需要即时帮助的用户。
生成一个html+css+Js的贪吃蛇小游戏,要求有难易度选择,越难障碍物越多,蛇的速度越快 有好看的UI和计数功能,如果游戏结束可以点击重新开始
生成的代码:
好的,下面是一个完整的贪吃蛇小游戏,包含如下功能:
- 难度选择(简单/中等/困难),难度越高障碍物越多,蛇速度越快
- 计分功能
- 游戏结束后可点击重新开始
- 美观的UI设计,响应式布局
你只需将以下代码保存为 snake.html,用浏览器直接打开即可游玩!
....
使用说明:
- 选择难度后点击“开始游戏”,用方向键或WASD控制蛇移动。
- 吃到食物得分,撞到自己、墙或障碍物游戏结束。
- 游戏结束后可点击“重新开始”。
- 难度越高,障碍物越多,蛇速度越快,UI美观,动画流畅,支持响应式。
如需功能扩展或有其他需求,欢迎随时提问!
2.2ask
- 按需帮助:用户通过快捷键或命令手动调用 AI,获取特定问题的解决方案或代码解释。
- 适用场景:适合希望在需要时获得帮助,而不被打扰的开发者,适合有经验的用户或特定任务。
- 优点:灵活性高,用户可以根据自己的节奏选择何时寻求帮助。
ask是自动模式,用于提问、探索、了解代码块,是cursor的内置对话模式
使用ctrl+i实现模式切换
2.3manual
- 完全控制:AI 不主动提供帮助,用户完全手动编写代码,适合不需要或希望避免AI干扰的情况。
- 适用场景:适合习惯传统编辑器或特定情况下不需要AI辅助的开发者。
- 优点:提供最高的控制权,减少干扰,适合完全自主工作的用户。
@选择具体文件
例如:
请给 @game.js 加上中文注释
2.4chat模式其他细节
2.4.1代码编辑选项
- review 在差异试图中查看建议的更改(左下角)
- 在agent和manual使用,apply应用更改
- accept和reject,进行更改可以选择保留和放弃
2.4.2 checkpoints数据欢迎
有时候要恢复数据到之前的状态可以点击,checkpoint
3.Ctrl+K 内联智能修改
不会检索代码库或者运行终端命令,直接在编辑器窗口生成新代码或编辑现有代码
3.1触发修改提示框
Ctrl+K 直接在代码内打开内联窗口,
二、cursor精准上下文指定
1.codebase indexing 代码库索引
打开项目后,cursor实例会及时识别project的文件索引。
为了获得更好、更准确的代码库答案,你可以为代码库建立索引。Cursor 会在后台为代码库中的每个文件计算嵌入(embeddings),并利用这些嵌入提升代码库相关回答的准确性。
当你打开一个项目时,每个 Cursor 实例都会为该工作区初始化索引。初始索引设置完成后,Cursor 会自动为你工作区中新添加的文件建立索引,确保代码库上下文始终保持最新。
你可以在
Cursor Settings > Features > Codebase Indexing中查看索引状态
请写出当前项目的文件结构
1.1忽略配置
- 手动创建:.cursorignore 内添加具体的文件扩展名 或是 文件名
在设置里面添加
2.Rules规则
2.1规则介绍
2.2项目规则
cursor\rules 下
规则名字 .mdc
2.3用户规则
在setting 中设置,每行代码加入中文注释 本地生效、个人习惯
2.4mdc语法了解
---
description: RPC 服务样板 "前端编码规范"
globs: 生效位置 "src/*/*"
priority:优先级 1000
alwaysApply: false
---
- 定义服务时使用内部 RPC 模式
- 服务名称始终使用 snake_case
@service-template.ts
3.@符号
3.1@介绍
在 Cursor 中使用 @ 符号指南
在 Cursor 中使用 @符号,可以在chat、Composer 和 Cmd K 等输入框中引用代码、文件、文档及其他上下文信息。
只需在输入框中输入 @,就会弹出建议菜单,并根据你的输入自动筛选出最相关的建议项。
- @Files - 引用项目中的特定文件
- @Folders - 引用整个文件夹,获取更广泛的上下文
- @Code - 引用代码库中的特定代码片段或符号
- @Docs - 访问文档和指南
- @Git - 访问 git 历史和变更
- @Notepads - 访问记事本
- @Past Chats - 使用已总结的 Composer 会话
- @Cursor Rules - 使用 cursor 规则
- @Web - 引用外部网页资源和文档
- @Link (paste) - 创建指向特定代码或文档的链接
- @Recent Changes - 创建指向特定代码或文档的链接
- @Lint Errors - 引用 lint 错误(仅限 Chat)
- @Definitions - 查找符号定义(仅限 Cmd K)
3.2@Docs
了解如何在 Cursor 中使用 @Docs 符号,将自定义文档作为上下文引用、添加和管理。
添加自定义文档
如果你想抓取并索引尚未提供的自定义文档,可以通过 @Docs > Add new doc 实现。粘贴你想要添加的文档 URL 后,会弹出如下窗口:

Cursor 会自动索引并学习该文档,你之后就可以像使用其他文档一样将其作为上下文引用。如果你希望索引所有子页面和子目录,请确保 URL 以斜杠结尾。
在 Cursor Settings > Features > Docs下,你可以看到已添加的文档。在这里你可以编辑、删除或添加新文档。
3.3@web
通过 @Web,可以在 Cursor 命令中动态添加最新的在线信息和文档作为上下文。
使用 @Web 时,Cursor 会根据你的查询和已提供的上下文自动构建搜索请求,并在网络上查找相关信息,将其作为额外的上下文补充进来。
这非常适合让 Cursor 获取最新的在线信息,或在几秒钟内自动抓取多个网站,找到最佳答案,无需你手动搜索。
3.4@lint error
访问并引用代码库中的 lint 错误。
@Lint Errors 符号会自动捕获并提供当前活动文件中的所有 lint 错误和警告的上下文信息。
Composer 和 Agent 默认都可以看到 lint 错误。
3.5@code
了解如何在 Cursor 中使用 @Code 符号和快捷键,将代码片段作为上下文引用到 Chat。
你可以使用 @Code 符号来引用特定的代码片段。
与 @Files 类似,Cursor 会显示代码内容的预览,方便你确认引用的是正确的代码。
另一种添加代码片段为上下文的方法是:
选中你想引用的代码,然后点击“Add to Chat”(Ctrl/⌘ Shift L)或“Add to Edit”(Ctrl/⌘ Shift K)。
这样会将选中的代码片段添加到 Chat 输入框或当前激活的 Cmd K 提示栏中。
三、智能插件开发实践
1.cursor设计chrome浏览器插件
需求设计:
创建:01_chrome插件需求
实现一个chrome插件,实现下面三个功能:
1.解释选中的段落或关键词
2.翻译段落或者关键词
3.朗读段落或者关键词
4.润色替换文本方案
细节要求:
1.当选中段落关键词出现插件,直接悬浮在关键词或者段落上
2.翻译添加语言选择(中文、英文)
3.润色结果可以修改,同事提供一键替换,替换原来的文案内容
4.翻译、解释、润色功能使用kimi的api实现,具体参考kimi官方文档
5.写好readme文档,写清楚chrome部署插件的过程
2.设计生成UI图文本
chat agent模式对话:
@01_chrome 上面的文档 帮我写一份项目的UI文本设计图,将设计图写 02_chrome 插件设计图文件中,要求页面简洁
3.需要 kimi api
{
"kimi_api_url": "https://api.moonshot.cn/v1",
"kimi_api_key": "sk-95jGsRGwqfwkdDZ52JWo2tKrFjvleI08xDm2TXlnN9tPZTuq"
}
2.chrome插件实现
@文件 基于需求和设计图 基准在当前文件夹实现插件功能,同时提取单独配置文件用户填写kimi api和key的位置,代码添加中文注释,实现子检查,确保插件正常运行雨实现
3.chrome插件调试发布
cursor究竟如何使用?的更多相关文章
- NDMCDB数据库hang住故障分析 - cursor: pin S wait on X
问题描写叙述: 上午刚刚到办公室,就有监控人员邮件反馈,昨晚NDMCDB407数据库被重新启动过,让我分析一下数据库重新启动的原因.因为昨晚业务有版本号上线,所以短信警告关闭了,所以没有短信下发到我手 ...
- ContentProvider和Cursor以及CursorAdapter三者之间内部链接实现原理 解析
最近 在学习Android3.0中推出的 Loader 机制,其中CursorLoader 这个加载器说是可以实时监测数据和更新数据,为了一探究竟,就连带的将 ContentProvider和Curs ...
- Ficow 的 AI 平台快速上手指南(ChatGPT, NewBing, ChatGLM-6B, cursor.so)
本文首发于 Ficow Shen's Blog,原文地址: Ficow 的 AI 平台快速上手指南(ChatGPT, NewBing, ChatGLM-6B, cursor.so). 内容概览 前言 ...
- 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流 ...
- 自定义鼠标光标cursor
通过css属性 Cursor:url()自定义鼠标光标. {cursor:url('图标路径'),default;} url是自定义鼠标图标路径 default指的是定义默认的光标(通常是一个箭头), ...
- Repository 仓储,你的归宿究竟在哪?(三)-SELECT 某某某。。。
写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗? ...
- 简述9种社交概念 SNS究竟用来干嘛?
1.QQ 必备型交流工具基本上每一个网民最少有一个QQ,QQ已经成为网民的标配,网络生活中已经离不开QQ了.虽然大家嘴上一直在骂 QQ这个不好,那个不对,但是很少有人能彻底离开QQ.QQ属于IM软件, ...
- 苹果手机不支持click文字 需要添加 cursor:pointer 才能 识别可以点击
给一个div 绑定一个 click事件, 苹果手机会识别不了,必须添加一个 cursor:pointer 才能 识别可以点击.安卓正常识别.
- java.lang.IllegalStateException:Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx...}: java.lang.IllegalSta ...
- MySQL:procedure, function, cursor,handler
Procedure & Function Procedure 语法: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ...
随机推荐
- app自动化的三大等待
app自动化的三大等待与web自动化的三大等待的代码脚本一样 一.硬性等待 硬性等待无论元素是否出现,都必须等待设置的时间再继续执行后面的代码. 使用简单,但是容易浪费时间.所以一般和隐式等待或显式等 ...
- 关于Bevy中的原型Archetypes
认识Bevy中的原型 Bevy是基于ECS(Entity-Component-System)架构的游戏引擎,其中的Entity实体是游戏中的一个基本对象,但实体本身通常只是一个标识id,它不包含任何具 ...
- xamarin.forms+prism 实现DialogService(对话框服务)
Getting Started with IDialogAware Creating dialogs with the DialogService requires a ViewModel that ...
- Sentinel——服务降级
目录 简介 Sentinel方法级降级 Sentinel类级降级 OpenFeign类级降级 简介 服务降级是一种增强用户体验的方式.当用户的请求由于各种原因被拒后,系统返回-一个事先设定好的.用户可 ...
- Java编程--可变参数、foreach循环
/** * 可变参数与foreach循环 * 可变参数:方法可以接受任意多个参数 * 方法格式(参数类型...变量) * 使用方法传入的该变量时当作数组对待 * foreach循环:快速对数组进行操作 ...
- 通过cmd/批处理 开启关闭windows中的mysql数据库
目录 cmd 开启关闭mysql 批处理 开启关闭mysql 每次通过服务开启关闭mysql太麻烦,可以通过cmd或批处理来解决 cmd 开启关闭mysql cmd需要使用管理员打开 //开启mysq ...
- SQL 日常练习 (十六)
最近接触了一波 RPA, 可以用来做一些数据采集的事情, 或者任意控制电脑上的软件, 感觉上是挺厉害的, 但我就是不想用, 尽管我尝试了一波, 最后还是放弃 了, 我还是喜欢纯代码的工作方式, 最为讨 ...
- 深入浅出:AST 技术的应用与实践
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 单服务器高性能模式:Reactor 与Proactor
极客时间:<从 0 开始学架构>:单服务器高性能模式:Reactor 与Proactor 1.引言 单服务器高性能的 PPC 和 TPC 模式,它们的优点是实现简单,缺点是都无法支撑高并发 ...
- Jupyter notebook添加Anaconda中的虚拟环境
1.创建虚拟环境 conda create -n your_virtual_env python=3.6 2.激活新创建的环境 activate your_virtual_env 3.安装nb_con ...