# Cursor 使用技巧指南

## 目录
- [基础操作技巧](#基础操作技巧)
- [AI 功能使用](#ai-功能使用)
- [快捷键大全](#快捷键大全)
- [代码编辑技巧](#代码编辑技巧)
- [搜索与导航](#搜索与导航)
- [调试技巧](#调试技巧)
- [多文件编辑](#多文件编辑)
- [代码重构](#代码重构)
- [Git 集成](#git-集成)
- [插件与扩展](#插件与扩展)
- [性能优化](#性能优化)
- [常见问题解决](#常见问题解决)
- [高级技巧](#高级技巧)

---

## 基础操作技巧

### 快速打开文件
```bash
# 使用命令面板
Ctrl + Shift + P (Windows/Linux)
Cmd + Shift + P (Mac)

# 快速打开文件
Ctrl + P (Windows/Linux)
Cmd + P (Mac)

# 快速打开符号（函数、类等）
Ctrl + Shift + O (Windows/Linux)
Cmd + Shift + O (Mac)
```

### 多光标编辑
```bash
# 添加多个光标
Alt + Click                    # 在多个位置添加光标
Ctrl + Alt + ↑/↓              # 在上/下行添加光标
Ctrl + D                       # 选择下一个相同的词
Ctrl + Shift + L               # 选择所有相同的词
```

### 代码折叠
```bash
# 折叠/展开代码块
Ctrl + Shift + [               # 折叠当前代码块
Ctrl + Shift + ]               # 展开当前代码块
Ctrl + K Ctrl + 0              # 折叠所有代码块
Ctrl + K Ctrl + J              # 展开所有代码块
```

### 快速跳转
```bash
# 跳转到定义
F12                            # 跳转到定义
Ctrl + Click                   # 按住Ctrl点击跳转
Alt + F12                      # 预览定义（不跳转）

# 跳转到引用
Shift + F12                    # 查找所有引用

# 返回上一位置
Ctrl + -                       # 返回上一位置
Ctrl + Shift + -               # 前进到下一位置
```

---

## AI 功能使用

### Chat 功能
```bash
# 打开 Chat 面板
Ctrl + L (Windows/Linux)
Cmd + L (Mac)

# 或者使用命令面板
Ctrl + Shift + P -> "Cursor: Open Chat"
```

**使用技巧：**
- 选中代码后，在 Chat 中会自动包含上下文
- 使用 `@文件名` 引用特定文件
- 使用 `@代码库` 引用整个代码库
- 使用 `@文档` 引用文档

### Composer 功能
```bash
# 打开 Composer
Ctrl + I (Windows/Linux)
Cmd + I (Mac)
```

**使用场景：**
- 多文件编辑
- 大型重构任务
- 跨文件代码生成
- 复杂功能实现

### 内联编辑（Tab 补全）
```bash
# 自动触发
# 输入代码时，Cursor 会自动提供建议
Tab                            # 接受建议
Ctrl + →                       # 接受部分建议
Esc                            # 拒绝建议
```

### 代码生成提示
```bash
# 使用注释触发
// TODO: 实现用户登录功能
// FIXME: 修复内存泄漏问题
// CURSOR: 生成一个用户注册表单
```

### AI 命令使用
```bash
# 在 Chat 中使用特殊命令
/explain                        # 解释代码
/refactor                       # 重构代码
/fix                            # 修复错误
/test                            # 生成测试
/document                        # 生成文档
```

---

## 快捷键大全

### 文件操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 新建文件 | Ctrl + N | Cmd + N |
| 打开文件 | Ctrl + O | Cmd + O |
| 保存文件 | Ctrl + S | Cmd + S |
| 保存所有 | Ctrl + K S | Cmd + K S |
| 关闭文件 | Ctrl + W | Cmd + W |
| 关闭所有 | Ctrl + K W | Cmd + K W |
| 重新打开文件 | Ctrl + Shift + T | Cmd + Shift + T |

### 编辑操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 撤销 | Ctrl + Z | Cmd + Z |
| 重做 | Ctrl + Y | Cmd + Shift + Z |
| 复制行 | Shift + Alt + ↓ | Shift + Option + ↓ |
| 删除行 | Ctrl + Shift + K | Cmd + Shift + K |
| 移动行 | Alt + ↑/↓ | Option + ↑/↓ |
| 注释行 | Ctrl + / | Cmd + / |
| 格式化 | Shift + Alt + F | Shift + Option + F |
| 全选 | Ctrl + A | Cmd + A |

### 导航操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 跳转到行 | Ctrl + G | Cmd + G |
| 跳转到符号 | Ctrl + Shift + O | Cmd + Shift + O |
| 跳转到定义 | F12 | F12 |
| 查找引用 | Shift + F12 | Shift + F12 |
| 返回上一位置 | Ctrl + - | Cmd + - |
| 前进到下一位置 | Ctrl + Shift + - | Cmd + Shift + - |

### 搜索操作
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 查找 | Ctrl + F | Cmd + F |
| 替换 | Ctrl + H | Cmd + Option + F |
| 全项目查找 | Ctrl + Shift + F | Cmd + Shift + F |
| 全项目替换 | Ctrl + Shift + H | Cmd + Shift + H |

### AI 相关快捷键
| 功能 | Windows/Linux | Mac |
|------|--------------|-----|
| 打开 Chat | Ctrl + L | Cmd + L |
| 打开 Composer | Ctrl + I | Cmd + I |
| 接受建议 | Tab | Tab |
| 拒绝建议 | Esc | Esc |
| 接受部分建议 | Ctrl + → | Cmd + → |

---

## 代码编辑技巧

### 多光标编辑
```javascript
// 示例：同时编辑多个变量
// 1. 选中第一个变量名
// 2. 按 Ctrl + D 选择下一个相同的词
// 3. 继续按 Ctrl + D 选择更多
// 4. 开始编辑，所有选中的位置会同步修改

const userName = "John";
const userEmail = "john@example.com";
const userAge = 30;
// 选中所有 "user" 后，可以统一重命名
```

### 列选择模式
```bash
# 进入列选择模式
Shift + Alt + 鼠标拖动        # Windows/Linux
Shift + Option + 鼠标拖动      # Mac

# 或者使用键盘
Ctrl + Shift + Alt + ↑/↓     # Windows/Linux
Cmd + Shift + Option + ↑/↓   # Mac
```

### 代码块选择
```bash
# 扩展选择
Ctrl + Shift + →              # 扩展选择到词
Ctrl + Shift + Alt + →       # 扩展选择到代码块
```

### 快速复制/移动
```bash
# 复制当前行
Shift + Alt + ↓              # 向下复制
Shift + Alt + ↑              # 向上复制

# 移动当前行
Alt + ↓                      # 向下移动
Alt + ↑                      # 向上移动
```

### 智能重命名
```bash
# 重命名符号
F2                           # 重命名当前符号
# 会自动更新所有引用
```

---

## 搜索与导航

### 快速文件搜索
```bash
# 按文件名搜索
Ctrl + P                     # 打开快速文件搜索
# 输入文件名或路径的一部分即可

# 按符号搜索
Ctrl + Shift + O             # 在当前文件中搜索符号
Ctrl + T                     # 在整个项目中搜索符号
```

### 高级搜索
```bash
# 全项目搜索
Ctrl + Shift + F             # 打开搜索面板

# 搜索选项
# - 区分大小写
# - 全词匹配
# - 正则表达式
# - 包含/排除文件
```

### 使用正则表达式搜索
```bash
# 在搜索框中启用正则表达式
# 示例：
# 查找所有 console.log
console\.log

# 查找所有函数定义
function\s+\w+

# 查找所有 TODO 注释
TODO|FIXME|XXX
```

### 文件导航
```bash
# 在文件之间快速切换
Ctrl + Tab                   # 切换最近打开的文件
Ctrl + P                     # 快速打开文件

# 在编辑器中导航
Ctrl + G                     # 跳转到指定行号
Ctrl + Shift + O             # 跳转到文件中的符号
```

---

## 调试技巧

### 断点设置
```bash
# 设置断点
F9                           # 切换断点
Ctrl + Shift + F9            # 删除所有断点

# 条件断点
# 右键点击断点 -> 编辑断点 -> 添加条件
```

### 调试控制
```bash
F5                           # 开始调试
F10                          # 单步跳过
F11                          # 单步进入
Shift + F11                  # 单步跳出
Ctrl + Shift + F5            # 重启调试
Shift + F5                   # 停止调试
```

### 调试面板
```bash
Ctrl + Shift + D             # 打开调试面板
# 可以查看变量、调用栈、断点等
```

### 日志调试
```bash
# 使用 console.log
console.log('Debug:', variable);

# 使用断点
debugger;                    # 在代码中插入断点
```

---

## 多文件编辑

### 分割编辑器
```bash
# 水平分割
Ctrl + \                     # 分割编辑器
Ctrl + 1/2/3                 # 切换到不同编辑器组

# 垂直分割
Ctrl + K Ctrl + \            # 垂直分割

# 关闭编辑器组
Ctrl + K W                   # 关闭当前编辑器组
```

### 并排编辑
```bash
# 打开文件到侧边
Ctrl + K →                   # 打开文件到右侧
Ctrl + K ←                   # 打开文件到左侧

# 移动文件到不同组
Ctrl + K Ctrl + ←/→          # 移动文件到左/右组
```

### 文件对比
```bash
# 对比两个文件
# 1. 右键点击文件 -> "Select for Compare"
# 2. 右键点击另一个文件 -> "Compare with Selected"
```

---

## 代码重构

### 提取函数
```bash
# 选中代码块
# 右键 -> "Extract Function"
# 或使用快捷键
Ctrl + Shift + R             # 快速重构菜单
```

### 重命名符号
```bash
F2                           # 重命名符号
# 会自动更新所有引用
```

### 提取变量
```bash
# 选中表达式
# 右键 -> "Extract Variable"
# 或使用命令面板
Ctrl + Shift + P -> "Extract Variable"
```

### 内联变量/函数
```bash
# 选中变量或函数调用
# 右键 -> "Inline Variable" 或 "Inline Function"
```

### 移动代码
```bash
# 选中代码
Alt + ↑/↓                   # 移动代码块
```

---

## Git 集成

### Git 操作
```bash
# 打开源代码管理
Ctrl + Shift + G            # 打开 Git 面板

# 常用操作
# - 查看更改
# - 暂存文件
# - 提交更改
# - 推送/拉取
```

### 查看 Git 历史
```bash
# 查看文件历史
# 右键文件 -> "Open Timeline"
# 或使用命令
Ctrl + Shift + P -> "Git: View File History"
```

### 分支管理
```bash
# 切换分支
Ctrl + Shift + P -> "Git: Checkout to..."
# 创建分支
Ctrl + Shift + P -> "Git: Create Branch..."
```

### 解决冲突
```bash
# 合并冲突时
# Cursor 会高亮冲突区域
# 使用 "Accept Current Change" / "Accept Incoming Change" 等选项
```

---

## 插件与扩展

### 推荐插件
```bash
# 代码格式化
- Prettier
- ESLint
- Black (Python)

# 主题
- One Dark Pro
- Material Theme
- Dracula Official

# 实用工具
- GitLens
- Error Lens
- Bracket Pair Colorizer
- Path Intellisense
- Auto Rename Tag
```

### 安装插件
```bash
# 打开扩展面板
Ctrl + Shift + X             # 打开扩展面板
# 搜索并安装插件
```

### 插件配置
```bash
# 打开设置
Ctrl + ,                     # 打开设置
# 搜索插件名称进行配置
```

---

## 性能优化

### 禁用不必要的功能
```bash
# 在设置中禁用
# - 文件监听（如果项目很大）
# - 某些语言服务器
# - 不必要的扩展
```

### 排除文件/文件夹
```bash
# 在 .cursorignore 或 .gitignore 中
node_modules/
dist/
build/
*.log
```

### 限制 AI 上下文
```bash
# 在设置中调整
# - AI 上下文窗口大小
# - 自动补全延迟
# - 最大文件大小
```

### 清理缓存
```bash
# 清理 Cursor 缓存
# Windows
%APPDATA%\Cursor\Cache

# Mac
~/Library/Application Support/Cursor/Cache

# Linux
~/.config/Cursor/Cache
```

### 重启 Cursor Server
```bash
# 如果 Cursor 变慢，可以重启服务
# Linux/Mac
pkill -f "cursor-server"

# 或者使用命令面板
Ctrl + Shift + P -> "Developer: Reload Window"
```

---

## 常见问题解决

### Cursor 无响应
```bash
# 1. 重启 Cursor
# 2. 清理缓存
# 3. 检查系统资源
# 4. 禁用不必要的扩展
```

### AI 功能不工作
```bash
# 1. 检查网络连接
# 2. 检查 API 密钥设置
# 3. 查看 Cursor 状态栏的错误信息
# 4. 重启 Cursor
```

### 代码补全不显示
```bash
# 1. 检查语言服务器是否运行
# 2. 检查文件类型是否正确识别
# 3. 重启语言服务器
Ctrl + Shift + P -> "Developer: Restart Extension Host"
```

### 快捷键冲突
```bash
# 1. 检查系统快捷键设置
# 2. 在 Cursor 设置中自定义快捷键
Ctrl + K Ctrl + S            # 打开快捷键设置
```

### 文件无法保存
```bash
# 1. 检查文件权限
# 2. 检查磁盘空间
# 3. 检查文件是否被其他程序占用
```

### 中文输入问题
```bash
# 1. 检查输入法设置
# 2. 在设置中启用 "Editor: Accept Suggestion On Commit Character"
# 3. 调整输入法快捷键
```

---

## 高级技巧

### 自定义代码片段
```bash
# 打开代码片段设置
Ctrl + Shift + P -> "Preferences: Configure User Snippets"

# 示例：创建 React 组件片段
{
  "React Component": {
    "prefix": "rfc",
    "body": [
      "import React from 'react';",
      "",
      "const ${1:ComponentName} = () => {",
      "  return (",
      "    <div>",
      "      $0",
      "    </div>",
      "  );",
      "};",
      "",
      "export default ${1:ComponentName};"
    ],
    "description": "Create a React functional component"
  }
}
```

### 工作区设置
```bash
# 项目特定设置
# 在项目根目录创建 .vscode/settings.json
{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "files.exclude": {
    "**/.git": true,
    "**/node_modules": true
  }
}
```

### 任务配置
```bash
# 在 .vscode/tasks.json 中配置任务
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "shell",
      "command": "npm run build",
      "group": "build"
    }
  ]
}

# 运行任务
Ctrl + Shift + P -> "Tasks: Run Task"
```

### 调试配置
```bash
# 在 .vscode/launch.json 中配置调试
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/index.js"
    }
  ]
}
```

### 使用命令面板
```bash
# 常用命令
Ctrl + Shift + P              # 打开命令面板

# 常用命令列表：
# - "Format Document"         格式化文档
# - "Organize Imports"         整理导入
# - "Go to Symbol"            跳转到符号
# - "Change All Occurrences"  更改所有出现
# - "Rename Symbol"           重命名符号
```

### AI 提示词技巧
```bash
# 在 Chat 中使用更好的提示词

# ❌ 不好的提示
"修复这个bug"

# ✅ 好的提示
"这个函数在处理空数组时会抛出错误，请添加空值检查并返回默认值"

# 使用 @ 引用
@文件名                        # 引用特定文件
@代码库                        # 引用整个代码库
@文档                          # 引用文档

# 使用特殊命令
/explain @file.js              # 解释文件
/refactor @function            # 重构函数
/test @component               # 生成测试
```

### 代码审查技巧
```bash
# 使用 AI 进行代码审查
# 1. 选中代码
# 2. 在 Chat 中输入：
"请审查这段代码，检查是否有bug、性能问题或可以改进的地方"

# 使用 Composer 进行大规模审查
# 1. 打开 Composer
# 2. 选择多个文件
# 3. 要求 AI 进行整体审查
```

### 批量操作
```bash
# 使用多光标进行批量操作
# 1. 选中第一个位置
# 2. Ctrl + D 选择下一个
# 3. 继续选择所有需要的位置
# 4. 同时编辑

# 使用查找替换
Ctrl + H                       # 打开替换
# 启用正则表达式
# 进行批量替换
```

### 代码生成模板
```bash
# 使用 AI 生成代码模板
# 在 Chat 中：
"生成一个 React 函数组件，包含以下功能：
- 使用 TypeScript
- 包含 props 类型定义
- 使用 useState 管理状态
- 包含错误处理"
```

---

## 实用配置示例

### settings.json 推荐配置
```json
{
  // 编辑器设置
  "editor.fontSize": 14,
  "editor.lineHeight": 1.6,
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.formatOnSave": true,
  "editor.formatOnPaste": true,
  "editor.codeActionsOnSave": {
    "source.fixAll": true,
    "source.organizeImports": true
  },
  
  // 文件设置
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 1000,
  "files.exclude": {
    "**/.git": true,
    "**/node_modules": true,
    "**/dist": true,
    "**/build": true
  },
  
  // AI 设置
  "cursor.ai.enabled": true,
  "cursor.ai.autoComplete": true,
  
  // 搜索设置
  "search.exclude": {
    "**/node_modules": true,
    "**/dist": true,
    "**/build": true
  }
}
```

---

## 学习资源

### 官方资源
- [Cursor 官网](https://cursor.com)
- [Cursor 文档](https://docs.cursor.com)
- [Cursor 博客](https://cursor.com/blog)

### 社区资源
- [Cursor Discord](https://discord.gg/cursor)
- [GitHub Discussions](https://github.com/getcursor/cursor/discussions)
- [Reddit r/cursor](https://reddit.com/r/cursor)

### 视频教程
- YouTube 搜索 "Cursor AI tutorial"
- 官方 YouTube 频道

---

## 最佳实践

### 1. 合理使用 AI
- 不要过度依赖 AI，理解生成的代码
- 使用 AI 加速开发，但保持代码质量
- 定期审查 AI 生成的代码

### 2. 保持代码整洁
- 使用格式化工具
- 及时清理未使用的代码
- 保持一致的代码风格

### 3. 利用快捷键
- 学习常用快捷键，提高效率
- 自定义适合自己工作流的快捷键
- 定期复习快捷键

### 4. 组织项目结构
- 使用工作区设置
- 配置合理的文件排除规则
- 保持项目结构清晰

### 5. 版本控制
- 充分利用 Git 集成
- 定期提交代码
- 使用有意义的提交信息

---

## 总结

Cursor 是一个强大的 AI 辅助代码编辑器，掌握这些技巧可以大大提高开发效率：

1. **基础操作**：多光标、快速导航、代码折叠
2. **AI 功能**：Chat、Composer、内联编辑
3. **代码编辑**：智能重命名、代码重构、批量操作
4. **调试技巧**：断点、日志、调试面板
5. **性能优化**：合理配置、清理缓存、排除文件

持续学习和实践这些技巧，让 Cursor 成为你开发路上的得力助手！

---

*最后更新：2024年*
