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

news2024/11/24 5:40:42

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

文章目录

    • 这一次,AI真懂你的代码
    • 关注该关注的,忽略该忽略的
      • 1. 创建.cursorignore文件
      • 2. 重新索引代码库
    • 参考资料

这一次,AI真懂你的代码

如果你偶尔关注一些AI编程相关的内容,想必你已经对Cursor有所耳闻。在这里插入图片描述

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

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

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

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

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

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

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

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

在这里插入图片描述
然后可以看到Cursor在回答具体的问题之前,先进行代码库的扫描。

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

在这里插入图片描述

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

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

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

1. 创建.cursorignore文件

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

在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2188364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

介绍多环境开发-分组(springboot-profile)

背景 在使用 Spring Boot 进行开发时,多环境配置是一项非常常见的需求。通常,我们会在开发、测试、生产等不同环境下部署同一个应用程序,而这些环境可能需要不同的配置,例如数据库连接、日志级别等。Spring Boot 通过 profile&am…

python交互式命令时如何清除

在交互模式中使用Python,如果要清屏,可以import os,通过os.system()来调用系统命令clear或者cls来实现清屏。 [python] view plain copy print? >>> import os >>> os.system(clear) 但是此时shell中的状态是:…

windows的一些容易忽视的使用记录

文章目录 快捷键更改电脑名字共享文件夹添加新账号(本地的)更改快捷访问 以下都基于 win 10。 快捷键 win I 直接打开设置。 win R 打开运行栏。这个非常常用。 更改电脑名字 先 win I 打开设置,然后点击系统。 左侧栏拉到最下面&…

Android开发高级篇:MVVM框架与数据双向绑定

在Android开发中,MVVM(Model-View-ViewModel)架构模式以其高效、简洁的特点,成为越来越多开发者的首选。MVVM不仅实现了界面(UI)与业务逻辑的分离,还通过数据双向绑定技术,极大地简化…

iterator的使用+求数组中的第n大值+十大经典排序算法

目录 一、iterator的用法 二、求一个数组中的第n大值(n为2或者3) 1、求一个数组中的第二大值(不能使用排序) 2、求一个数组中的第三大值(不能使用排序) 三、冒泡排序 1、基本思想 2、代码实现 3、存…

AQS原理(AbstractQueuedSynchronizer)

本篇为 [并发与多线程系列] 的第四篇,对应Java知识体系脑图中的 并发与多线程 模块。 这一系列将对Java中并发与多线程的内容来展开。 AQS原理(AbstractQueuedSynchronizer) AQS原理(AbstractQueuedSynchronizer)AQS整…

java解决跨域问题时的403报错

什么是跨域问题? 当一个请求的url的协议,域名,端口三者之间任意一个与当前页面url不同 即为跨域 问题背景: 如图,前端端口为8090,而后端端口为8099,形成跨域,无法对接 试图利用Spr…

【MySQL面试高频误区】不可重复读和幻读到底有哪些区别?

欢迎关注公众号 【11来了】 ,持续 MyBatis 源码系列内容! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址:点击查看文章导读! 感谢你的关注&#xff…

zotero使用koofr+google drive/onedrive同步

最早了解到这个思路是来自 知乎-【从零开始使用Zotero】(3) Zotero文献同步方式 和 How to Sync Zotero Files Using WebDAV and Google Drive with Koofr: A Step-by-Step Guide 虽然周围很多人都在用Readpaper这种web端的了,但是经常逛Arxiv而且zotero的web插…

论文翻译 | Language Models are Few-Shot Learners 语言模型是少样本学习者(下)

6 更广泛的影响 语言模型对社会有着广泛的有益应用,包括代码和写作自动补全、语法辅助、游戏叙事生成、提高搜索引擎响应以及回答问题等。但它们也可能有潜在的危害性应用。GPT-3在文本生成质量和适应性方面优于较小的模型,并且增加了区分合成文本与人类…

使用GitLab CI构建持续集成案例

1. 部署GitLab (1)基础准备 解压软件包并导入镜像: [rootmaster ~]# curl -O http://mirrors.douxuedu.com/competition/Gitlab-CI.tar.gz [rootmaster ~]# tar -zxvf Gitlab-CI.tar.gz [rootmaster ~]# ctr -n k8s.io image import gitla…

408 笔记错题本

数据结构 树 线索二叉树 组成原理 第五章 计组 SISD 一两个指令和数据 不能采用数据并行技术,但是可以采用流水线技术,计组这门课 就是讨论的是SISD这个概念。 SIMD 应用:浮点机、向量处理机、优化for循环。 MISD 这个理论上是不存在…

考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)

考研论坛平台小程序 目录 基于java和微信小程序的考研论坛平台小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂…

华为资源分享

紫光云文档中心提供弹性计算服务文档https://www.unicloud.com/document/product/ElasticComputeService/index.html报文格式华为报文格式资料Info-Finder(在线工具) 报文格式华为IP网络电子书华为IP网络相关电子书IP网络系列丛书 - 华为企业业务华为产品…

[云] DockerCoins 练习笔记

DockerCoins DockerCoins 由 5 个服务组成 rng (随机数生成器): 这是一个Web服务,它的任务是生成随机字节。随机字节通常用于加密、安全令牌生成、测试等场景。 hasher (哈希计算器): 这个服务接收数据(通常是通过POST请求发送的数据)&#…

202408第十五届蓝桥杯青少组省赛C++中级组题解

202408第十五届蓝桥杯青少组省赛C++中级组题解 单选题 1、定义 char a[]="hello\nworld",执行 cout<<a,输出结果是(B) A、helloworld B、hello world C、 hellonworld D、 hello\nworld 解析:\n输出时会换行。 2、 的结果是(C)。 A、 B、

商城网站建设怎么建

商城网站已经成为企业迅速拓展市场、提升品牌形象的重要利器。随着互联网技术的飞速发展&#xff0c;传统的实体店面已经不能满足消费者多样化的购物需求。因此&#xff0c;搭建一个功能强大、用户友好的商城网站成为企业不可或缺的一环。 首先&#xff0c;商城网站的建设需要具…

OpenCAEPoro安装与测试(ASC 2024)

首先简单总结一下经验&#xff1a; 在之前的测试和学习中&#xff0c;由于自己是虚拟机或者云服务器&#xff0c;有root权限&#xff0c;经常无脑增删文件&#xff08;主要是为了图省事&#xff0c;看见报错就加回来&#xff0c;多出来就删除&#xff09;&#xff0c;但是在经…

D 咖饮品机闪耀荆州动漫嘉年华

在今年的国庆佳节&#xff0c;恰逢金秋时节&#xff0c;荆州动漫嘉年华盛大开幕&#xff0c;这场充满活力与创意的盛会吸引了无数动漫爱好者的目光。而在众多精彩的展示中&#xff0c;D 咖饮品机的出现无疑为这场嘉年华增添了一抹别样的色彩。 走进嘉年华现场&#xff0c;热闹的…

ubuntu18.04运行OpenPCDet出现的问题

一、概述 在编译成功OpenPCDet的源代码之后&#xff0c;发现在运行demo时候&#xff0c;依旧出现了很多问题&#xff0c;在此对出现的问题进行总结记录。 二、问题分析 &#xff08;一&#xff09;ModuleNotFoundError:No module named av2 如图所示 这个问题比较简单&#x…