一:Codebase Indexing 代码库索引
识别项目中目录结构和文件,然后在对话Chat时如果有需要的话会参考项目的目录结构。
列举当前项目的目录结构。
有些文件是没有意义的是不需要识别的,比如前段的node_modules
、dist
和后端的target
、*.iml
等,可以在.cursorignore文件将需要忽略的文件配置上提高索引的效率。.cursorignore文件也可以让在Chat模式让Cursor给生成,如“生成一份.cursorignore文件”。
二:Rules规则
规则是用来整体定义项目的一些通用的限制和要求,相当于一种全局通用配置。
规则分为项目规则Project Rules(只针对当前项目有效,整个项目团队有效)和用户规则User Rules(针对当前用户有效,仅本地生效),如果两个规则不冲突则互补都生效,如果两种规则有冲突则以项目规则为优先。
Rules也可以添加每次会话都要做的事情,如“总结每次的会话内容将总结追加Append到READEME.md文件中,总结内容包括以下几点:1.会话内容;2.解决方案;3.使用的技术方案;4.完成的任务;5.修改了哪些文件”
2.1 MDC
MDC(Markdown with Cursor):Cursor专门为项目规则设计的一种轻量级markdown语法。
1. 前置元数据Frontmatter
用 ---
包括的yaml
格式配置,#表示注释:定义通用规则基本属性(如描述description
、作用范围globs
、优先级priority
、版本号version
、也可以添加自定义字段如author、date)
2. 规则内容(Markdown正文)
用markdown语法书写具体规则
一般使用#标题
和列表
的形式分表描述。定义通用的规则和具体要求,如命名风格。
3. 示例
---
alwaysApply: true
description:"Typescript 项目编码规范”
globs:"src/**/*.ts]
priority:1000
---
# 一、基础规范
1. 所有文件必须使用 UTF-8 编码
2. 统一使用2空格缩进
# 二、类型约束
1. 禁止使用隐式 any 类型
- 示例:`const num:number =123`(显式)
- 禁止:'const num =123(隐式)
2. 接口命名必须以“I开头(如“interface Iuser')
# 三、项目约束
- 所有 HTTP 请求必须通过 @fi1e src/uti1s/request.ts 封装的工具
- 状志管理必须使用 Redux Toolkit,禁止直接修改 state
2.2 Project Rules项目规则(优先)
- 在Cursor Settings/Rules 中点击项目规则下的Add Rule,然后随意命名个文件(如my-rules)就会在项目根目录下生成一个mdc文件:
.cursor/rules/my-rules.mdc
, - 调整一下什么时候应用规则:
Always Apply
总是应用。 - 规则可以添加多个,多个优先级值越大越优先。
2.3 用户规则 User Rules
用户规则的文件位置是放在~/.cursor/rules
下,文件格式没有特殊要求。
三:@符号
在聊天框(Chat模式和内联模式)中可以通过空格@类型,来提供更详细的信息。
-
@Files
:引用项目中的特定文件,如 @Xxx需求文档 根据当前文档生成接口代码,上下文文件也可以是图片
,文件可以直接拖拽
、或者直接Ctrl + V。 -
@Folders:引用整个文件史以获得更广泛的上下文
-
@Code
:引用代码库中的特定代码片段或符号,如@addUser -
@Docs
:访问文档和指南,需要先配置文档,然后在文档下搜索内容(知识库),一般是官方的标准权威文档。
先将官方文档添加进来。
Coze api 文档。
查看文档内容。
使用。
@Lint Errors
:引用 lint 错误(仅限Chat),也可以先在终端选中报错信息Ctrl+L,然后输入解决允许标错,也可以不用选中错误直接使用@Lint Errors 解决报错,指定特定错误效率更高些,如果不指定也能解决错误,但是会分析很多效率低。示例:@Lint Errors 解决运行中的报错问题@Web
:联网搜索,从外部网站上进行搜素。如@Web 小程序分享点击的路径地址是什么样的- @Git:访问 git 历史记录和更改
- @Past Chats:使用汇总的 Composer 会话
- @Cursor Rules:使用光标规则
- @https地址:表示引用某个网址作为上下文,如@https://platform.moonshot.cn/docs/introduction#%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B 这个地址有什么内容