logo

打开 Cursor IDE 后同样有一个简单的欢迎界面,可以选择打开一个文件夹或者通过 SSH 打开。

我们先点击 IDE 右上角的“设置”按钮,打开 Cursor 的设置页面。

通用配置

在普通设置页面,可以进行账号管理、VS Code 导入等,这里我们重点关注下 Rules for AI 选项,可以设置 AI 回答的规则,这里我们设置的 Always respond in 中文,这样在和 AI 交互的时候,AI 就会使用中文进行回答了,当然还可以设置其他规则,这里设置的规则属于全局规则,会应用到所有和 AI 交互的场景中。仔细看下放还有一个 Include .cursorrules file 的选项,如果启用该选项,则我们可以在项目中创建 .cursorrules 文件,来指定更加详细的规则,比如我们可以指定某些文件或者文件夹不使用 AI 进行回答,使用什么技术栈等等,也就相当于为我们项目编写的一个 Prompt 提示词。

有爱好者做了一个 https://cursor.directory/ 的网站,里面提供了很多项目的 .cursorrules 文件,我们可以直接复制下来使用。

当然还有其他 IDE 设置,这些就和 VS Code 的设置是一样的方式,这里就不赘述了。

模型配置

接着可以切换到 Models 配置选项,在这里我们可以选择 Cursor 可以使用的模型,比如 GPT-4oGPT-4Claude 3.5 Sonnet 等。此外我们也可以直接配置 OpenAI AIP Key 或者 Anthropic API Key 来直接使用 OpenAI 或者 Anthropic 的模型,但是需要注意这样的话就不能使用 Cursor 定制的一些模型特性了,所以建议还是使用默认的模型。

特性配置

然后接着就是 Features 配置选项,在这里我们可以配置 Cursor 的特性,比如 Cursor TabComposerCodebase indexing 等。

首先看下 Cursor Tab,默认是开启的,这是 Github Copilot 的替代品,可以跨多行进行建议更改,以前称为 Copilot++,现在改名为 Cursor Tab

Cursor Tab 配置

  • Partial Accepts:允许用户使用 editor.action.inlineSuggest.acceptNextWord 快捷键接受建议的下一个单词。这种方式可以让用户更精细地控制接受自动完成或代码建议的过程,而不是一次性接受整个建议。
  • Cursor Prediction:预测在接受 Cursor Tab 建议后你将移动到的下一行,可以通过 tab 键接受,允许你通过连续按 tab 键来完成编辑。
  • Trigger in Comments:是否可以在注释中触发 Cursor Tab 建议。
  • Auto Import:使用 Cursor Tab 导入必要的模块(目前仅支持 TypeScript、Python(Beta))。

接着看下 Composer 的配置,Composer 是 Cursor 的另一个重要特性,这是 Cursor 首次推出的多文件代码编辑功能,可以使用 Ctrl/Cmd + I 快捷键来打开 Composer 面板。

  • Always keep composer in bound:这个选项的作用是确保 Composer 面板不会完全贴近屏幕边缘,而是保留一些间距,以提高可读性和使用体验。
  • Composer projects:这个选项允许用户在不同的 Composer 实例之间创建和共享项目上下文,可能包括代码片段、配置或其他相关信息,以便更好地组织和管理多个相关的 Composer 任务或项目。
  • Cmd+P for file picker:这个选项允许用户在 Composer 中使用 Cmd+P 快捷键来打开文件选择器,以便选择要编辑的文件。
  • Show suggested files:这个选项允许用户在 Composer 中显示建议的文件,以便更好地组织和管理多个相关的 Composer 任务或项目。

接着一个比较重要的配置是 Codebase indexing,也就是代码库索引,通过嵌入模型的方式来提高整个代码库范围的智能提示能力,所有代码都存储在本地,不会上传到任何第三方平台,所以大家不用担心隐私问题。

  • Index new folders by default:这个配置选项允许用户控制 Cursor 是否自动为新打开的项目文件夹创建代码索引。启用后可以提高 AI 对整个代码库的理解和建议能力,但对于大型项目可能会消耗较多资源,超过 10000 个文件的文件夹不会自动索引。用户可以根据需要灵活开启或关闭此功能。
  • Ignore files:这个配置选项允许用户指定一些文件或文件夹不进行索引,比如一些临时文件、日志文件、缓存文件等,我们可以将忽略的文件添加到 .cursorignore 文件中,这样这些文件就不会被索引了。
  • Git graph file relationships:这个功能允许 Cursor 通过分析 Git 历史来更好地理解项目中文件之间的关联。这可以提高 AI 对整个代码库结构的理解,从而提供更准确的建议和智能提示。值得注意的是,虽然代码和提交信息保存在本地以保护隐私,但一些非敏感的元数据会上传到服务器,以便进行更高效的分析和处理。

然后接下来有一个 Docs 配置,我们可以添加问答让 Cursor 学习更多关于我们项目的知识,然后在 chat 或者 edit 中可以使用 @Add 来添加这些文档库进行问答。

我们还可以对 Chat 功能进行配置,Chat 功能是 Cursor 的一个非常重要的特性,可以使用 Ctrl/Cmd + L 快捷键来打开 Chat 面板,然后在聊天界面中我们就可以和 AI 进行交互了。

  • Always search the web:这个选项允许用户在和 AI 交互的时候,可以搜索互联网,以获取最新的信息和答案。这和在每次交互时使用 @web 命令的效果是一样的。

  • Fade chat stream:这个选项允许用户控制 AI 回答的显示方式。如果启用,AI 的回答不会立即完整显示,而是会以渐进的方式慢慢呈现出来,产生一种淡入的视觉效果。这种效果可以让用户有更多时间阅读和处理 AI 的回答,特别是对于较长的回复来说更有帮助。它可以提供一种更平滑和不那么突兀的阅读体验。

  • Default no context:这个选项允许用户在默认情况下聊天时不包含任何上下文。这个设置适合那些希望得到更通用答案,或者不希望 AI 被之前的对话影响的用户。这意味着:

    • AI 在回答问题时不会考虑之前的对话历史或当前打开的文件内容。
    • 每次提问都会被视为独立的查询,不依赖于之前的交互。
    • 可能会提高 AI 的响应速度,因为它不需要处理额外的上下文信息。
    • 但也可能导致 AI 的回答不够准确或相关,因为它缺少了可能有用的背景信息。
    • 用户如果需要上下文,可以在每次提问时手动添加相关信息。
  • Narrow scrollbar:这个选项允许用户在 AI 聊天界面中使用窄滚动条。使用窄滚动条可以节省屏幕空间,让聊天界面看起来更加整洁,同时仍然保留滚动功能,以提高可读性和使用体验。

  • Auto scroll chat:这个选项允许用户在 AI 聊天界面中自动滚动到底部。启用后,当 AI 生成更多文本时,如果用户当前位于聊天底部,聊天界面会自动滚动以显示最新内容。这样可以提高用户的阅读体验,特别是在长对话或快速更新的情况下。

  • Show chat history:是否在空聊天界面中显示聊天历史记录。

  • Show suggested files:是否在聊天界面中显示建议的文件。

接下来就是 Editor 配置,这里可以配置一些编辑器的特性,比如 CursorLineWord 等。

  • Show chat/edit tooltip:在编辑器中高亮代码附近显示 chat/edit 提示框。这可以让用户更方便地对特定代码段进行交互或编辑。
  • Auto parse inline edit links:当在 Ctrl/⌘ + K 输入框中粘贴链接时,自动解析这些链接,这可能会提供额外的功能或信息,比如预览链接内容、提取相关信息等,从而提高编辑效率。
  • Auto select for Ctrl/⌘ + K:自动选择代码区域进行内联编辑。这可以提高编辑效率,让用户更快地对特定代码块进行修改或查询。
  • Use themed diff backgrounds:为内联差异使用主题的背景颜色。这个选项允许用户在查看代码差异时使用与当前 IDE 主题相匹配的背景颜色。启用此选项后,代码差异的显示将更加协调,与整体 IDE 界面风格保持一致,提高可读性和视觉体验。这对于经常需要比较和审查代码变更的开发者来说特别有用,可以让差异部分更加醒目,同时又不会显得突兀。
  • Use character-level diffs:对内联差异使用字符级别的比较。这个选项允许用户在查看代码差异时,以字符为单位而不是以行为单位来显示变化。启用此功能后,代码差异的展示将更加精确,能够清晰地呈现每个字符的变动。这对于仔细审查和比对代码修改非常有帮助,特别是在需要识别细微变化的情况下。相比于行级差异,字符级差异能够提供更详细的修改信息,有助于开发者更准确地理解和评估代码的变更。

最后还有一个 Terminal 配置,这里可以配置一些终端的特性。

  • Terminal hint:在终端底部显示提示文本。这个选项允许在终端窗口底部显示一些提示信息。启用后,用户可以在终端底部看到一些有用的提示文本,比如当前工作目录、Git 分支信息、环境变量等。这些提示可以帮助用户更快地了解当前终端的状态和上下文,提高工作效率。对于经常需要在终端中切换目录或项目的开发者来说,这个功能特别有用,可以避免因忘记当前位置而导致的错误操作。
  • Show terminal hover hint:在终端中显示类似 Add to chat 的提示。启用后,当用户将鼠标悬停在终端的某些元素上时,会出现一些有用的提示,比如 Add to chat 或者Add to composer。这些提示可以帮助用户更方便地与终端内容进行交互,该功能可以提高终端使用的效率,让用户更容易地将终端操作与 Cursor 的 AI 功能结合起来。

Beta 功能

最后一项 Cursor 是一些处于 Beta 状态的功能,目前有两个功能 LONG CONTEXT CHATAI PREVIEW,这两个功能都是处于 Beta 状态,所以可能会有一些不稳定的情况,默认禁用,如果大家想要体验这些功能的话,可以手动开启。

  • NOTEPADS(Beta):主要用来记录项目的一些思考灵感计划之类的。
  • WINDOW CONTROL PANEL(Beta):可以将 Composer 面板设置成独立的窗口。
  • LONG CONTEXT CHAT (Beta):这个功能允许用户在聊天中使用更长的上下文,从而提高 AI 的回答准确性和相关性。它具有以下特点:
    • 利用 Claude 模型的大规模上下文处理能力,可以处理多达 20 万个 token 的内容。
    • 用户可以通过 @ 的方式将整个文件夹的内容添加到聊天中,使 AI 能够理解更广泛的项目背景。
    • 提供更强大的代码库聊天功能,可以更全面地理解和分析整个代码库,但由于处理的信息量更大,响应速度可能会相对较慢。
    • 这个功能特别适合需要 AI 理解大量上下文信息的场景,如复杂项目的代码审查、大型文档的分析等。
  • AI PREVIEW (ALPHA):该功能使用 GPT-4 扫描当前的 git diff 或 PR 来查找错误。使用时需要谨慎,不应完全依赖它来进行 bug 检测。