Cursor 设置完整指南 - 快捷键、模型、Rules、隐私、自定义
Cursor 设置项繁多,本文系统讲清模型设置、快捷键、Cursor Rules、隐私模式、Codebase Index、Maven 等项目配置、禁用功能、VS Code 设置导入等关键配置。
Cursor 设置 是新用户最容易忽视、又最影响使用效率的部分。同样一份 Cursor,有人配置完之后写代码像有了第二大脑,有人天天被 Tab 弹窗烦死还到处找不到入口。本文把 Cursor 的设置体系拆成 8 个板块讲清:模型、快捷键、Rules、隐私、索引、语言配置、禁用项、VS Code 迁移。
前提说明:Cursor 版本迭代非常快,UI 入口和字段名可能变动,本文里的路径以当前主流版本为准,实际以官方为准。
Cursor 设置入口
Cursor 的设置有两类入口,常常被混淆。
入口 1:Settings UI(Cursor 自家的图形界面)
Cmd-Comma (Mac) / Ctrl-Comma (Windows/Linux)
或者点左下角齿轮图标 → Settings。打开的是 Cursor 专属设置面板,管理:
- 模型选择
- API key
- Cursor Tab / Composer / Agent 开关
- Privacy Mode
- Codebase Index
- Rules
入口 2:VS Code 风格 settings.json
Cmd-Shift-P (Mac) / Ctrl-Shift-P (Windows/Linux)
→ "Preferences: Open User Settings (JSON)"
打开的是底层 JSON 配置,跟 VS Code 几乎一样。Cursor 在 VS Code 基础上额外加了 cursor.* 命名空间的配置项。
用户级 vs 项目级
| 层级 | 路径 | 适合 |
|---|---|---|
| 用户级 | ~/Library/Application Support/Cursor/User/settings.json (Mac) / %APPDATA%\Cursor\User\settings.json (Win) | 全局偏好 |
| 项目级 | 项目根目录下 .vscode/settings.json | 这个项目专属 |
| 项目级 Rules | 项目根目录下 .cursorrules 或 .cursor/rules/ | AI 行为约束 |
项目级覆盖用户级,这是 VS Code 的常识。
模型设置
Default Model 怎么切
Settings → Models → Default Model: [下拉] → Claude Sonnet 4.6
Default Model 影响 Cmd-K、Cmd-L、Composer 默认调用的模型。Cursor Tab 不受这里影响(Tab 用 Cursor 自研模型,详见 Cursor Tab 是什么)。
启用 / 禁用具体模型
Settings → Models → 模型列表
- Claude Sonnet 4.6 [开关]
- Claude Opus 4.6 [开关]
- Claude Haiku 4.6 [开关]
- GPT-4o [开关]
- Gemini Pro [开关]
关掉的模型不会出现在 Chat 底部的选择器里,减少误选。
Cursor Pro vs API Key 区别
| 项 | Cursor Pro | BYOK (API Key) |
|---|---|---|
| 谁付费 | 你订阅 Cursor | 你直接付 Anthropic / OpenAI |
| 配额 | Cursor 定义的快/慢请求 | API 平台的 token 配额 |
| 高级功能 | 全部解锁 | 部分功能可能受限 |
| 隐私 | 受 Cursor 政策 | 受模型平台政策 |
| 国内便利度 | 支付难,网络要稳 | API key 可中转,更灵活 |
国内开发者两种方式的详细操作见 Cursor 国内使用 Claude。
各模型在 Cmd-K / Chat / Composer 里的可用性
| 模型 | Cmd-K | Chat | Composer / Agent |
|---|---|---|---|
| Claude Opus 4.6 | 是 | 是 | 是(Pro) |
| Claude Sonnet 4.6 | 是 | 是 | 是 |
| Claude Haiku | 是 | 是 | 可能受限 |
| GPT-4 / 4o | 是 | 是 | 是 |
| Gemini | 是 | 是 | 部分版本支持 |
| cursor-small | 是 | 是 | 否 |
具体能不能在 Agent 里用,以你账号档位 + 当前版本为准。
快捷键设置
默认快捷键速查表
| 操作 | Mac | Windows/Linux |
|---|---|---|
| 接受 Tab 补全 | Tab | Tab |
| 拒绝 Tab 补全 | Esc | Esc |
| 内联改代码 | Cmd-K | Ctrl-K |
| 打开 Chat 侧栏 | Cmd-L | Ctrl-L |
| 打开 Composer | Cmd-I | Ctrl-I |
| 把选区发到 Chat | Cmd-Shift-L | Ctrl-Shift-L |
| 添加文件到 Chat 上下文 | Cmd-Shift-P → “Add to Chat” | Ctrl-Shift-P → “Add to Chat” |
| 重新生成 | Cmd-Shift-R (在 Chat 里) | Ctrl-Shift-R |
| 接受 Composer 全部改动 | Cmd-Enter | Ctrl-Enter |
| 命令面板 | Cmd-Shift-P | Ctrl-Shift-P |
| 切换 sidebar | Cmd-B | Ctrl-B |
| 集成终端 | Cmd-` | Ctrl-` |
怎么改快捷键(keybindings.json)
跟 VS Code 完全同源:
Cmd-Shift-P / Ctrl-Shift-P → "Preferences: Open Keyboard Shortcuts (JSON)"
打开 keybindings.json,典型片段:
[
{
"key": "cmd+k cmd+i",
"command": "cursor.composer.open",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+l",
"command": "cursor.chat.addSelectionToChat",
"when": "editorHasSelection"
}
]
改成 IntelliJ / Vim 习惯
IntelliJ keymap 插件:
Extensions → 搜 "IntelliJ IDEA Keybindings" → Install
VS Code Marketplace 的 IntelliJ keybindings 插件在 Cursor 里直接能装,装完所有 IDE 快捷键变成 IntelliJ 风格,但 Cursor 自家的 AI 快捷键(Cmd-K、Cmd-L、Cmd-I)需要再 review 一遍,有些会被 IntelliJ map 覆盖。
Vim 模式:
Extensions → 搜 "Vim" (VSCodeVim) → Install
注意 Vim 插件可能跟 Cursor 的 Esc 退出 Tab 补全冲突,先按 Esc 是退出 Tab 预览,再按 Esc 才进入 Vim normal 模式。
Cursor Rules
Rules 是 Cursor 最被低估的功能。它的本质是在每次 AI 调用前自动塞进 system prompt 的上下文,影响 Claude / GPT 的行为。
用户级 Rules
Settings → Rules → User Rules
写在这儿的内容对所有项目生效。适合放:
- 你的编程偏好(“用 TypeScript 严格模式”、“不要写注释除非函数复杂”)
- 通用的禁忌(“不要无理由用 any”、“测试用 vitest 不要用 jest”)
项目级 Rules
两种写法,新版推荐第二种。
写法 A(旧):项目根目录建 .cursorrules 文件
# .cursorrules
这是一个 Next.js 15 + TypeScript + Tailwind 项目。
- 组件用 function 不要用 class
- API route 用 app router 的 route.ts 写
- 数据库是 PostgreSQL,通过 Prisma 访问
- 不要在 client component 里调 process.env
写法 B(新):.cursor/rules/ 目录下放多个 .mdc 文件
.cursor/
rules/
typescript.mdc # TypeScript 相关
api.mdc # API 设计
db.mdc # 数据库相关
每个 .mdc 文件可以用 frontmatter 控制何时生效:
---
description: 数据库访问规则
globs: ["**/db/**/*.ts", "**/prisma/**/*.ts"]
---
- 所有 Prisma 查询必须 select 字段,不要返回整表
- 写入用 transaction 包裹
Rules 写作建议
短:每条 Rule 一句话能讲清楚就一句话,不要写小作文。 可验证:“代码必须通过 eslint” 比 “代码要好看” 强一万倍。 不要矛盾:User Rules 写”用 TypeScript”,项目 Rules 写”这是 JS 项目”——会让 AI 抓瞎。 用反例:“不要用 default export” 比 “用 named export” 更管用,因为默认行为是 default export。 别太长:Rules 总长度建议 < 1500 token,太长会挤掉用户实际的请求上下文。
与 Claude Code CLAUDE.md 的呼应
Claude Code 用项目根目录的 CLAUDE.md 做项目记忆。Cursor 的 .cursorrules / .cursor/rules/ 跟 CLAUDE.md 是两套独立机制,但你完全可以让它们内容一致——把 CLAUDE.md 软链或复制成 .cursorrules,这样两个工具看的是同一份项目宪法,行为一致性大幅提升。
隐私 / Privacy Mode
数据是否会被训练
Cursor 政策(以官方为准):
- Privacy Mode 关:可能用于改进 Cursor 服务(Cursor 文档明示是否含训练)
- Privacy Mode 开:不持久化、不用于训练
开启方式
Settings → Privacy → Privacy Mode: Enabled
Business / Enterprise 套餐默认开启。
企业开启 SSO + Privacy
Admin Dashboard (cursor.com/team)
→ SSO Settings: 配置 SAML / OIDC
→ Privacy Mode: 强制开启
→ Data Retention: 设置保留期
企业级配置完成后:
- 团队成员登录走 SSO(统一身份管理)
- 所有人代码自动走 Privacy Mode
- 离职后访问立即收回
注意 BYOK 模式下数据走自己 API key,不受 Cursor Privacy 限制,要看 Anthropic / 中转服务自己的政策。
Codebase Index
索引是什么
Cursor 启动时会扫描项目文件,生成向量索引,这样 Chat / Composer / Tab 才能”看到”你整个项目。没索引的话 AI 只能看到当前打开的文件。
什么时候要 Rebuild
- 新打开一个仓库,看到状态 “Not indexed”
- 大批量删除 / 重命名文件后,索引可能过时
- 切了分支,文件结构变了
- AI 老引用不存在的文件,说明索引有脏数据
Settings → Features → Codebase Indexing → Rebuild Index
大仓库索引建议
| 仓库规模 | 处理 |
|---|---|
| < 1 万文件 | 默认配置即可 |
| 1-10 万文件 | 用 .cursorignore 排除 node_modules、dist、build、*.lock |
| 10 万+ | 拆分子工作区,只 index 必要部分 |
.cursorignore 示例:
node_modules/
dist/
build/
.next/
coverage/
*.log
*.min.js
*-lock.yaml
特定语言 / 工具配置
让 Cursor 识别 Maven / Gradle 项目结构
Cursor 本身是 VS Code 内核,Java 支持靠扩展。cursor 配置 maven 的步骤:
1. 安装 Extension Pack for Java(微软官方扩展包)
2. 打开 pom.xml 所在目录作为工作区
3. Settings → 搜 "java.configuration.maven"
4. 配置 Maven user settings 路径:
settings.json:
{
"java.configuration.maven.userSettings": "~/.m2/settings.xml",
"java.maven.downloadSources": true,
"java.format.settings.url": "eclipse-formatter.xml"
}
Gradle 类似:装 Gradle for Java 扩展,Cursor 会自动识别 build.gradle。
为了让 AI 理解 Maven 多模块项目,在 .cursorrules 里加上:
本仓库是 Maven 多模块项目:
- parent: pom.xml 定义全局依赖管理
- core: 核心业务逻辑,不要在这里写 Spring 配置
- api: Spring Boot 启动模块,接口层
- 测试用 JUnit 5,不要用 JUnit 4 写法
Python 项目 Rules 模板
本项目是 FastAPI + SQLModel:
- Python 版本 3.11+
- 用 ruff 做 lint,不用 flake8
- 用 pytest 不用 unittest
- 异步函数用 async def,数据库访问全异步
- pydantic v2 语法,不要写 v1 的 @validator
- 类型注解严格,函数签名必须标返回类型
settings.json 配套:
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.analysis.typeCheckingMode": "strict",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true
}
}
Node 项目 Rules 模板
本项目是 Next.js 15 + TypeScript:
- App Router,不用 pages router
- 服务端组件优先,用 "use client" 标客户端组件
- 状态管理用 zustand
- 表单用 react-hook-form + zod
- API 用 server actions,REST 风格,不要 tRPC
Go 项目 Rules 模板
本项目是 Go 1.22:
- 用 net/http 标准库,不引入 gin / fiber
- 错误处理显式,不要用 panic
- context.Context 必须作为第一个参数
- goroutine 必须配合 context 取消
- 测试用 testing 包,不用 testify
禁用功能 / 性能优化
禁用 Tab(在某些项目里太吵)
全局:
Settings → Features → Cursor Tab → 关闭
只在特定项目里:
项目根 .vscode/settings.json:
{
"cursor.tab.enabled": false
}
禁用 Codebase Index(超大仓库 / 隐私要求)
Settings → Features → Codebase Indexing → Disable
代价:Chat / Composer 不能跨文件搜代码,只能基于当前打开的文件。
禁用某个 Linter / Agent 工具
Composer / Agent 模式里,Cursor 会自动跑一些工具(ESLint、Prettier、TypeScript Server 等)。如果某个工具一直误报:
Extensions → 找到对应扩展 → Disable (Workspace)
或者在 Rules 里写:
不要尝试运行 ESLint,我们用 oxlint。
禁用遥测 / 自动更新
{
"telemetry.telemetryLevel": "off",
"update.mode": "manual"
}
导入 VS Code 设置
新装 Cursor 时,首次启动会问”要不要从 VS Code 导入”。错过这一步的话,手动来:
方法 1:命令面板
Cmd-Shift-P / Ctrl-Shift-P → "Cursor: Import VSCode Settings and Extensions"
Cursor 会把 VS Code 的 settings.json、keybindings.json、扩展列表全部复制过来。
方法 2:手动同步 settings.json
# VS Code 位置
~/Library/Application Support/Code/User/settings.json # Mac
%APPDATA%\Code\User\settings.json # Windows
# Cursor 位置
~/Library/Application Support/Cursor/User/settings.json # Mac
%APPDATA%\Cursor\User\settings.json # Windows
直接复制粘贴。注意 Cursor 自己的 cursor.* 配置项不会在 VS Code 里有,只能保留。
方法 3:Settings Sync
如果你 VS Code 开了 Settings Sync(微软账号同步),Cursor 也支持登录同一个微软账号同步,但需要装 “Settings Sync” 扩展并手动配置(VS Code 内置的同步在 Cursor 里默认是禁用的)。
一组实用的 settings.json 推荐
{
"editor.fontFamily": "JetBrains Mono, 'Microsoft YaHei Mono', monospace",
"editor.fontSize": 14,
"editor.lineHeight": 1.6,
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"files.autoSave": "onFocusChange",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"workbench.colorTheme": "Default Dark Modern",
"workbench.startupEditor": "none",
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.windows": "PowerShell",
"cursor.cmdK.useThemedDiffBackground": true,
"cursor.diffs.useCharacterLevelDiffs": true,
"cursor.composer.collapsePaneInputBoxPills": true,
"cursor.tab.enabled": true,
"cursor.chat.alwaysSearchWeb": false
}
FAQ
设置改了不生效怎么办
按这个顺序排查:
- JSON 语法错误(缺逗号、多逗号)—— Cursor 右下角会有提示
- 项目级覆盖了用户级 —— 检查
.vscode/settings.json - 扩展强制覆盖 —— 临时禁用所有扩展看是不是某个扩展的锅
- 重启 Cursor
Cursor 设置和 VS Code 设置能同时存在吗
能,两者完全独立,各自的 settings.json 互不影响。
怎么把项目 Rules 同步给团队
.cursorrules 和 .cursor/rules/ 直接 commit 到 git,克隆下来自动生效。注意不要把私人偏好(快捷键、字体)放 Rules,Rules 是给 AI 看的不是给 IDE 看的。
改了 Rules 要不要重启
不用,下一次 AI 调用就会用新的 Rules。
Cursor 设置文件能不能跨设备同步
可以,把 settings.json 和 keybindings.json 放进自己的 dotfiles 仓库,新机器 clone 下来软链到对应位置即可。也可以用 Settings Sync 扩展。
Pro 订阅和 BYOK 能同时用吗
可以。Pro 给”高级模型 + 高级功能”,BYOK 在 Settings 里填 API key 后,可以在某些场景下走自己的 key。具体哪些场景用哪个,Cursor 当前版本可能不允许细粒度切换——以官方为准。
Rules 写多了 AI 会不会变笨
会。Rules 加进 system prompt 占 token,token 越多模型注意力越分散。建议 Rules < 1500 token,真正重要的事情放 Rules,细节让 AI 自己看代码。
推荐阅读
Cursor 设置体系版本迭代快,UI 入口和字段名可能跟本文有出入,以 Cursor 官方文档为准。