本文持续更新,敬请期待更多内容。

这一次,AI真懂你的代码

如果你偶尔关注一些AI编程相关的内容,想必你已经对Cursor有所耳闻。持续更新:当前最好用的AI 编程工具,Cursor 编程指南-LMLPHP

比如OpenAi的联合创始人Andrej Karpathy最近在X中提到,他正在使用Cursor来取代Github Copilot来作为主要编程的辅助方式。

这是目前自己最喜欢并且几乎已经离不开的一款AI编程工具。

Cursor是一款独立开发的AI驱动代码编辑器,在使用上它提供了与VSCode类似的用户体验。

这意味着如果你熟悉VSCode,使用Cursor几乎没有学习曲线。你可以轻松地将现有的主题、快捷键和设置迁移到Cursor中,保持你熟悉的工作环境。

其次,相比于跳转到网页端去提问ChatGPT或者Claude等模型,Cursor内部支持多种模型。这样就可以在一个界面内持续思考和编程,更加沉浸,不需要跳来跳去打断思路。

当然,最重要的是,对于代码的理解和解释更加精准,可以针对整个代码库的文件进行索引。尤其是对于工程项目,对于复杂的调用关系,文件关系,普通的AI模型几乎没有对这类场景进行有效的提问。

但这些对于Cursor来说,都是基础操作。在这里,你可以非常方便地添加文件、文件夹甚至整个代码库,作为你的上下文进行提问。尤其是对于工程类的项目,想要结合全局,解释一段代码,或者单纯的希望帮你找到某一段代码,修复某个问题,都将会非常好用。

比如我现在是一个初步接触项目代码的新人,我希望快速搞明白关于某个业务的逻辑。那么就可以输入问题之后,直接选用整个代码库作为上下文。

持续更新:当前最好用的AI 编程工具,Cursor 编程指南-LMLPHP
然后可以看到Cursor在回答具体的问题之前,先进行代码库的扫描。

然后进行回答。更方便的是,由于对整个代码库的文件进行了索引,回答中的文件或者代码,点击可以直接跳转到对应的文件。

持续更新:当前最好用的AI 编程工具,Cursor 编程指南-LMLPHP

关注该关注的,忽略该忽略的

不过在某些场景下,我们并不需要对全部文件进行索引,比如当项目中包含大量生成文件、日志文件或非核心代码文件时,索引它们不仅浪费时间,还可能让检索结果不够精确。而Cursor 也刚好考虑到了这一点,可以排除不必要的文件或目录。

具体的操作过程可以见演示视频。

1. 创建.cursorignore文件

首先你需要在项目的根目录中使用一个 .cursorignore 文件,它的工作方式与 .gitignore 在 git 中的工作方式相同,可以排除特定文件或目录,如日志文件或临时文件,或者只包含特定类型的文件。

持续更新:当前最好用的AI 编程工具,Cursor 编程指南-LMLPHP

1、忽略特定文件。

例如,想忽略日志文件或特定目录时,你只需在 .cursorignore 文件中添加相应的路径规则。

对于一个新上手的项目,此时可以先参考 .gitignore 文件,因为它已经列出了许多不需要纳入版本控制的文件,例如构建文件、日志、依赖项等。

# 忽略 `dist` 目录中的所有文件
dist/

# 忽略所有 `.log` 文件
*.log

# 忽略特定文件 `config.json`
config.json

比如我并不希望回答从framework目录中作为参考,那么在 .cursorignore 文件中添加framework/,就可以达到目的。

2、仅包含特定文件

还有一些场景,你仅仅需要包含某一类特定的文件。

相关语法:

  • *:忽略所有文件。

  • !:在忽略所有文件的情况下,使用 ! 例外规则指定某些文件或目录不被忽略。

假设你希望在仅关注 app 目录中包含的Python 文件(.py),而忽略其他文件类型,可以使用以下 .cursorignore 文件配置:

# 忽略所有文件
*
# 不忽略 app 目录
!app/
# 不忽略 app 目录中的子目录
!app/*/
!app/**/*/
# 不忽略 .py 文件
!*.py

在这个例子中:

  • *:此规则忽略项目中的所有文件和目录。
  • !app/:使 app 目录不被忽略,表示此目录将被包含。
  • !app/*/!app/**/*/:确保 app 目录下的所有子目录也不会被忽略。
  • !*.py:明确指示 Python 文件(.py)不被忽略,允许这些文件被包含进来。

通过这种方式,你能确保 Cursor 仅索引 app 目录及其子目录中的 .py 文件,其他文件(如 .txt.log 文件)则被排除。这个规则特别适合在大项目中仅索引关键代码文件,而忽略其他无关内容。

2. 重新索引代码库

左上角,点击Cursor,选择首选项,进入Cursor Settings

选择Features,来到Codebase Indexing设置。

注意,大部分情况下,代码库索引会自动与最新的代码库更改同步。但是如果手动修改了.cursorignore 文件配置,最好是手动执行一下,点击“Resync Index”即可。这样,如果你的项目中有任何内容文件是 AI 绝对不需要读取的,忽略这些文件可能会提高答案的准确性。

参考资料

Cursor官方文档:https://docs.cursor.com/get-started/migrate-from-vscode

10-04 17:04