cursor rules配置无反应是因路径错误、语法非法或版本废弃字段导致规则未加载,需用cursor: show rules diagnostics验证路径,严格置于项目根目录的.cursor/rules.jsonc,确保jsonc合法、langid匹配、通配符正确,且v0.45+禁用promptrules等废弃字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Cursor Rules配置写完却完全没反应,编辑器不提示、不校验、不报错,就像规则文件根本不存在一样——这不是你的错觉,而是VS Code底层加载机制、Cursor版本契约变更与文件路径解析三重陷阱共同作用的结果。
确认规则文件是否被真正加载
打开命令面板(Ctrl+Shift+P),输入并执行 Cursor: Show Rules Diagnostics。该命令会弹出一个诊断面板,明确列出当前已加载的 rules 文件路径、解析状态及错误行号。
如果面板中显示 “No rules loaded” 或路径为空,说明 Cursor 根本没找到你的 rules 文件——后续所有调试都失去意义,必须先解决路径问题。
执行 Cursor: Reload Rules 手动刷新一次,避免因缓存导致诊断结果滞后。
检查 rules 文件存放位置与格式合法性
方法一:严格遵循 v0.45+ 版本契约
将 rules 文件置于项目根目录(即你用 VS Code 打开的那个文件夹顶层),命名为 .cursor/rules.jsonc 或 .cursor/rules.json。注意:.cursor 是隐藏目录,不是点开头的文件名。
方法二:验证 JSONC 语法是否真正合法
用 VS Code 自带的 JSON 验证功能检查:右键 rules 文件 → “Format Document”,若提示“无法格式化”,说明存在隐藏语法错误——常见于尾随逗号、单引号、BOM 字符或注释写在对象外层。
方法三:多根工作区下只认激活根目录
如果你打开了多个文件夹(Multi-root Workspace),仅当前被设为“活动根目录”的那个文件夹下的 .cursor/rules.jsonc 会被加载,其余根目录的规则全部静默忽略。右键任一文件夹 → “Set as Root Folder” 可切换激活状态。
排查规则作用域是否匹配目标文件
第一步:确认 language ID 是否准确
在目标文件(如 Vue 文件)中按 Ctrl+Shift+P → 输入 “Developer: Inspect Editor Tokens and Scopes”,查看右下角显示的 Language ID。它可能是 vue、vue-html 或 typescriptreact,而非你直觉认为的 “vue” 或 “ts”。rules 中的 "langId": "vue" 若与实际不符,整条规则直接失效。
第二步:检查 include/exclude 路径是否覆盖真实路径
使用 **/*.vue 而非 src/**/*.vue——前者能匹配任意层级的 .vue 文件;后者若文件实际在 packages/ui/src/xxx.vue 就会漏掉。路径通配符不支持正则,只认 glob 语法。
第三步:验证规则是否被更高优先级配置覆盖
Workspace 设置(.vscode/settings.json)或用户级设置(Settings UI 中全局开启的 ESLint/Prettier)可能屏蔽项目级 rules。临时禁用所有插件,仅保留 Cursor,再测试规则是否生效。
识别 v0.45+ 版本废弃字段陷阱
如果你的 rules.jsonc 中仍含有 "promptrules"、"cursorRules" 或类似字段,它们已被彻底移除且不会触发任何警告——整个 rules 文件会被静默跳过。v0.45 起唯一合法结构是顶层为数组,每条规则必须含 id、langId、include 和 pattern(或 action)字段。
错误示例:
{"promptrules": [{"ruleName": "no-console"}]}
正确写法:
[{"id": "no-console", "langId": "javascript", "include": ["**/*.js"], "pattern": {"type": "regex", "value": "console\."}, "action": {"type": "warning", "message": "禁止使用 console"}}]
绕过缓存强制重载 LSP 服务
关闭所有 Cursor 窗口 → 在终端执行:killall -9 Cursor(macOS/Linux)或任务管理器结束所有 Cursor 进程 → 删除 ~/.cursor/cache/lsp 目录 → 重新打开项目。
这一步清除的是语言服务器实例级缓存,比单纯重启窗口更彻底。旧版 Cursor 的 LSP 服务常驻内存,规则变更后不杀进程就永远读取旧索引。










