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快速调取侧边栏聊天

可以提出问题,请求代码编辑,获取建议等

主要功能

  1. 了解代码块进行修改
  2. 了解代码库并组合在一起
  3. 根据错误进行修改

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

重点

  1. 提供上下文
  2. 分店描述
  3. 使用技术术语
  4. 明确边界
  5. 示例引导

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代码编辑选项
  1. review 在差异试图中查看建议的更改(左下角)
  2. agentmanual使用,apply应用更改
  3. 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 中使用 @符号,可以在chatComposerCmd 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 错误和警告的上下文信息。

ComposerAgent 默认都可以看到 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究竟如何使用?的更多相关文章

  1. NDMCDB数据库hang住故障分析 - cursor: pin S wait on X

    问题描写叙述: 上午刚刚到办公室,就有监控人员邮件反馈,昨晚NDMCDB407数据库被重新启动过,让我分析一下数据库重新启动的原因.因为昨晚业务有版本号上线,所以短信警告关闭了,所以没有短信下发到我手 ...

  2. ContentProvider和Cursor以及CursorAdapter三者之间内部链接实现原理 解析

    最近 在学习Android3.0中推出的 Loader 机制,其中CursorLoader 这个加载器说是可以实时监测数据和更新数据,为了一探究竟,就连带的将 ContentProvider和Curs ...

  3. Ficow 的 AI 平台快速上手指南(ChatGPT, NewBing, ChatGLM-6B, cursor.so)

    本文首发于 Ficow Shen's Blog,原文地址: Ficow 的 AI 平台快速上手指南(ChatGPT, NewBing, ChatGLM-6B, cursor.so). 内容概览 前言 ...

  4. 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

    ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流 ...

  5. 自定义鼠标光标cursor

    通过css属性 Cursor:url()自定义鼠标光标. {cursor:url('图标路径'),default;} url是自定义鼠标图标路径 default指的是定义默认的光标(通常是一个箭头), ...

  6. Repository 仓储,你的归宿究竟在哪?(三)-SELECT 某某某。。。

    写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗? ...

  7. 简述9种社交概念 SNS究竟用来干嘛?

    1.QQ 必备型交流工具基本上每一个网民最少有一个QQ,QQ已经成为网民的标配,网络生活中已经离不开QQ了.虽然大家嘴上一直在骂 QQ这个不好,那个不对,但是很少有人能彻底离开QQ.QQ属于IM软件, ...

  8. 苹果手机不支持click文字 需要添加 cursor:pointer 才能 识别可以点击

    给一个div 绑定一个 click事件,  苹果手机会识别不了,必须添加一个 cursor:pointer 才能 识别可以点击.安卓正常识别.

  9. 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 ...

  10. MySQL:procedure, function, cursor,handler

    Procedure & Function Procedure 语法: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ...

随机推荐

  1. SAP HANA使用命令行快速导出导入

    楔子 今天折腾了接近一下午,就为了使用SAP HANA自带的命令行工具来导出数据备份. SAP HANA(后续简称Hana)是内存数据库,性能这一方面上还真没怕过谁. 由于SAP HANA提供了Han ...

  2. Web前端入门第 41 问:神奇的 transform 改变元素形状,matrix3d 矩阵变换算法演示

    CSS transform 属性中文翻译过来是 变换,始终觉得翻译差那么一点意思.它可以用来改变元素形状,比如旋转.缩放.移动.倾斜等,就是它可以把元素各种拿捏~ transform 特性是在不改变自 ...

  3. 集合流之"计算集合中的Integer或Double或BigDecimal的sum总和(累计)"

    一.BigDecimal类型 BigDecimal withdrawalFeeExchange = groupDeverList.stream().map(DevWeekReport::getWith ...

  4. 结点的"最早开始和最晚开始和最早完成和最晚完成"

    最早:方块表示 最晚:三角形表示 最早开始:2 最晚开始:15-5=10 最早完成:2+5=7 最晚完成:15 案例1 案例2

  5. .NET外挂系列:1. harmony 基本原理和骨架分析

    一:背景 1. 讲故事 为什么要开这么一个系列,是因为他可以对 .NET SDK 中的方法进行外挂,这种技术对解决程序的一些疑难杂症特别有用,在.NET高级调试 领域下大显神威,在我的训练营里也是花了 ...

  6. 通过COM,用Python调用C#库

    1.C#配置 (1)类库 (2)COM互操作打勾 (3)代码中类必须要有无参构造函数,否则不会注册成功!!! using System; using System.Runtime.InteropSer ...

  7. DNSPY调试引用dll

    (1) 点击"调试",选择需要调试的可执行程序 (2) 点击"确定"后,打开程序,再点击"调试"-"窗口"-模块 (3) ...

  8. 参加 Hugging Face 组织的 Gradio & MCP 智能体主题黑客松

    欢迎参加 Gradio & MCP 智能体主题黑客松! 准备好了吗?一场以智能体(Agent)和模型上下文协议(Model Context Protocol,简称 MCP)为核心的全球在线黑客 ...

  9. 用bat脚本启动和停止系统服务,如oracle等

    启动脚本 启动oracle.bat :: 取得管理员权限 :Main @echo off cd /d "%~dp0" cacls.exe "%SystemDrive%\S ...

  10. 薅一个ClawCloud的永久免费容器,最高可获取4核心 8G内存

    作者:故事我忘了¢ 个人微信公众号:程序猿的月光宝盒 目录 简介 看法 申请tips 简介 最近冲浪时,发现ClawCloud 推出了一个永久免费容器服务,用户最高可申请到 4 核 8G 内存的配置, ...