这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

@符号

用于上下文和命令的@符号

1 - 概述

Cursor 中用于上下文和命令的所有@符号概述

在 cursor 输入框中,例如 Composer、Chat 和 Cmd K中,您可以通过键入 @ 来使用 @符号。会弹出菜单显示建议列表,它将自动过滤,只显示根据您的输入最相关的建议。

Keyboard Shortcuts 键盘快捷键

您可以使用上/下箭头键浏览建议列表。您可以按 Enter 键选择建议。如果建议是一个类别,如 Files,建议将被过滤,只显示该类别中最相关的项目。

img

以下是所有可用的@符号列表:

2 - @Files

了解如何在 Cursor 的 Chat 和 Cmd+K 中使用 @ 来引用文件,以及预览和分块功能

在人工智能输入框中,如 Chat 和 Cmd K,您可以通过使用 @Files 引用整个文件。此外,如果您继续在 @ 之后键入,您将在 @Code 策略之后看到文件搜索结果。

为了确保您引用的文件是正确的文件,光标将显示文件路径的预览。当您在不同的文件夹中有多个同名文件时,这尤其有用。

实操:同名文件太多时体验很差,还是拖放吧

聊天长文件引用

在 Cursor 的聊天中,如果文件的内容太长,Cursor 会将文件分成更小的块,并根据与查询的相关性对其进行重新排序。

拖放

您可以将文件从主侧边栏拖放到 Composer、Chat 或 Cmd K 中,以将其添加为上下文。

实操:这个比较简单方便,尤其是同名文件很多时

3 - @Folders

将文件夹作为 Chat & cmd k 中的上下文,以增强 AI 对话

您可以在 Cursor 中引用整个文件夹作为上下文。当将 @Folders 与 Agent 一起使用时,它会附加目录中所有项目的列表,这允许 Agent 自己搜索内容。这使代理能够根据手头任务的需要独立地浏览和分析文件夹的内容。

实操:在 chat 窗口可以调出 files & folders:

cmd k 不行,只有 @files

4 - @Code

学习使用 @Code 符号和键盘快捷键引用代码,以便将代码添加到 chat 或编辑

要引用特定的代码段,可以使用 @Code 符号。

代码预览

与 @Files 符号类似,Cursor 将显示代码内容的预览,以便您可以验证所引用的代码是否正确。

实操:有不好代码

从编辑器

另一种添加代码片段作为上下文的方法是选择要引用的代码,然后单击 “添加到聊天”(Ctrl/Shift L)或“添加到编辑”(Ctrl/Shift K)。

这将把选定的代码段添加到聊天输入框或当前活动的 Cmd K 提示栏中。

实操:还是这个方便。

5 - @Docs

了解如何使用 @Docs 在 Cursor 中使用、添加和管理自定义文档作为上下文

Cursor 附带了一组第三方文档,这些文档被抓取、索引并准备用作上下文。您可以使用 @ 符号访问它们。你可以在这里找到我们默认的预抓取文档列表。

附录:默认的预抓取文档列表

备注:cursor 的默认的预抓取文档列表

https://raw.githubusercontent.com/getcursor/crawler/main/docs.jsonl

内容如下:

{  "name": "ASP.NET",  "crawlerStart": "https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-7.0",  "crawlerPrefix": "https://learn.microsoft.com/en-us/aspnet/core/"}
{  "name": "AWS Amplify",  "crawlerStart": "https://docs.amplify.aws/",  "crawlerPrefix": "https://docs.amplify.aws/"}
{  "name": "AWS CLI",  "crawlerStart": "https://docs.aws.amazon.com/cli/latest/reference/",  "crawlerPrefix": "https://docs.aws.amazon.com/cli/latest/reference/"}
{  "name": "AWS DynamoDB",  "crawlerStart": "https://docs.aws.amazon.com/dynamodb/",  "crawlerPrefix": "https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/"}
{  "name": "AWS ECS",  "crawlerStart": "https://docs.aws.amazon.com/ecs/",  "crawlerPrefix": "https://docs.aws.amazon.com/ecs/latest/developerguide/"}
{  "name": "AWS Lambda",  "crawlerStart": "https://docs.aws.amazon.com/lambda/index.html",  "crawlerPrefix": "https://docs.aws.amazon.com/lambda/latest/dg/"}
{  "name": "AWS RDS",  "crawlerStart": "https://docs.aws.amazon.com/rds/",  "crawlerPrefix": "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/"}
{  "name": "Amazon EC2",  "crawlerStart": "https://docs.aws.amazon.com/ec2/index.html",  "crawlerPrefix": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/"}
{  "name": "Amazon S3",  "crawlerStart": "https://docs.aws.amazon.com/s3/index.html",  "crawlerPrefix": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/"}
{  "name": "Android SDK",  "crawlerStart": "https://developer.android.com/docs",  "crawlerPrefix": "https://developer.android.com/"}
{  "name": "Angular",  "crawlerStart": "https://angular.dev/overview",  "crawlerPrefix": "https://angular.dev/"}
{  "name": "Ansible",  "crawlerStart": "https://docs.ansible.com/ansible/latest/index.html",  "crawlerPrefix": "https://docs.ansible.com/ansible/latest/"}
{  "name": "Ant Design",  "crawlerStart": "https://ant.design/docs/react/introduce",  "crawlerPrefix": "https://ant.design/docs/react/"}
{  "name": "Apache Airflow",  "crawlerStart": "https://airflow.apache.org/docs/apache-airflow/stable/index.html",  "crawlerPrefix": "https://airflow.apache.org/docs/apache-airflow/stable/"}
{  "name": "Apollo GraphQL",  "crawlerStart": "https://www.apollographql.com/docs/",  "crawlerPrefix": "https://www.apollographql.com/docs/"}
{  "name": "Apple Developer Documention",  "crawlerStart": "https://developer.apple.com/documentation/",  "crawlerPrefix": "https://developer.apple.com/documentation/"}
{  "name": "Astro",  "crawlerStart": "https://docs.astro.build/en/",  "crawlerPrefix": "https://docs.astro.build/en/"}
{  "name": "Auth0",  "crawlerStart": "https://auth0.com/docs",  "crawlerPrefix": "https://auth0.com/docs"}
{  "name": "Azure Pipelines",  "crawlerStart": "https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=azure-devops",  "crawlerPrefix": "https://docs.microsoft.com/en-us/azure/devops/pipelines/"}
{  "name": "Bash",  "crawlerStart": "https://www.gnu.org/software/bash/manual/bash.html",  "crawlerPrefix": "https://www.gnu.org/software/bash/manual/"}
{  "name": "BeautifulSoup",  "crawlerStart": "https://www.crummy.com/software/BeautifulSoup/bs4/doc/",  "crawlerPrefix": "https://www.crummy.com/software/BeautifulSoup/bs4/doc/"}
{  "name": "Boto3",  "crawlerStart": "https://boto3.amazonaws.com/v1/documentation/api/latest/index.html",  "crawlerPrefix": "https://boto3.amazonaws.com/v1/documentation/api/latest/"}
{  "name": "Bun",  "crawlerStart": "https://bun.sh/docs",  "crawlerPrefix": "https://bun.sh/docs"}
{  "name": "C#",  "crawlerStart": "https://learn.microsoft.com/en-us/dotnet/csharp/",  "crawlerPrefix": "https://learn.microsoft.com/en-us/dotnet/csharp/"}
{  "name": "CSS",  "crawlerStart": "https://developer.mozilla.org/en-US/docs/Web/CSS",  "crawlerPrefix": "https://developer.mozilla.org/en-US/docs/Web/CSS"}
{  "name": "Cheerio",  "crawlerStart": "https://cheerio.js.org/docs/intro",  "crawlerPrefix": "https://cheerio.js.org/docs/"}
{  "name": "CircleCI",  "crawlerStart": "https://circleci.com/docs/",  "crawlerPrefix": "https://circleci.com/docs/"}
{  "name": "Clerk",  "crawlerStart": "https://clerk.com/docs",  "crawlerPrefix": "https://clerk.com/docs"}
{  "name": "Cloudflare",  "crawlerStart": "https://developers.cloudflare.com/",  "crawlerPrefix": "https://developers.cloudflare.com/"}
{  "name": "CodeMirror",  "crawlerStart": "https://codemirror.net/docs/",  "crawlerPrefix": "https://codemirror.net/docs/"}
{  "name": "Cursor",  "crawlerStart": "https://docs.cursor.com/",  "crawlerPrefix": "https://docs.cursor.com/"}
{  "name": "Cypress",  "crawlerStart": "https://docs.cypress.io/guides/overview/why-cypress",  "crawlerPrefix": "https://docs.cypress.io/guides/"}
{  "name": "D3",  "crawlerStart": "https://d3js.org/getting-started",  "crawlerPrefix": "https://d3js.org/"}
{  "name": "Datadog",  "crawlerStart": "https://docs.datadoghq.com/",  "crawlerPrefix": "https://docs.datadoghq.com/"}
{  "name": "Deno",  "crawlerStart": "https://deno.land/manual@v1.35.0/introduction",  "crawlerPrefix": "https://deno.land/manual@v1.35.0/"}
{  "name": "DigitalOcean",  "crawlerStart": "https://docs.digitalocean.com/",  "crawlerPrefix": "https://docs.digitalocean.com/"}
{  "name": "Discord API",  "crawlerStart": "https://discord.com/developers/docs/intro",  "crawlerPrefix": "https://discord.com/developers/docs"}
{  "name": "Django",  "crawlerStart": "https://docs.djangoproject.com/en/4.2/",  "crawlerPrefix": "https://docs.djangoproject.com/en/4.2/"}
{  "name": "Django Rest Framework",  "crawlerStart": "https://www.django-rest-framework.org/api-guide/requests/",  "crawlerPrefix": "https://www.django-rest-framework.org/api-guide"}
{  "name": "Docker",  "crawlerStart": "https://docs.docker.com/",  "crawlerPrefix": "https://docs.docker.com/"}
{  "name": "Drizzle",  "crawlerStart": "https://orm.drizzle.team/docs/overview",  "crawlerPrefix": "https://orm.drizzle.team/docs/overview"}
{  "name": "ELK Stack",  "crawlerStart": "https://www.elastic.co/guide/en/elastic-stack/current/index.html",  "crawlerPrefix": "https://www.elastic.co/guide/en/elastic-stack/current/"}
{  "name": "ESBuild",  "crawlerStart": "https://esbuild.github.io/api/",  "crawlerPrefix": "https://esbuild.github.io/api/"}
{  "name": "ESLint",  "crawlerStart": "https://eslint.org/docs/latest/",  "crawlerPrefix": "https://eslint.org/docs/latest/"}
{  "name": "Elasticsearch",  "crawlerStart": "https://www.elastic.co/guide/en/enterprise-search/current/index.html",  "crawlerPrefix": "https://www.elastic.co/guide/en/enterprise-search/current/"}
{  "name": "Electron",  "crawlerStart": "https://www.electronjs.org/docs/latest/",  "crawlerPrefix": "https://www.electronjs.org/docs/latest/"}
{  "name": "Emacs",  "crawlerStart": "https://www.gnu.org/software/emacs/manual/html_node/emacs/",  "crawlerPrefix": "https://www.gnu.org/software/emacs/manual/html_node/emacs/"}
{  "name": "Expo",  "crawlerStart": "https://docs.expo.dev/",  "crawlerPrefix": "https://docs.expo.dev/"}
{  "name": "Express",  "crawlerStart": "https://expressjs.com/en/5x/api.html",  "crawlerPrefix": "https://expressjs.com/en/5x/"}
{  "name": "FFmpeg",  "crawlerStart": "https://ffmpeg.org/ffmpeg.html",  "crawlerPrefix": "https://ffmpeg.org/ffmpeg.html"}
{  "name": "Fabric.js",  "crawlerStart": "http://fabricjs.com/docs/",  "crawlerPrefix": "http://fabricjs.com/docs/"}
{  "name": "FastAPI",  "crawlerStart": "https://fastapi.tiangolo.com/tutorial/",  "crawlerPrefix": "https://fastapi.tiangolo.com/tutorial/"}
{  "name": "Firebase",  "crawlerStart": "https://firebase.google.com/docs",  "crawlerPrefix": "https://firebase.google.com/docs"}
{  "name": "Flask",  "crawlerStart": "https://flask.palletsprojects.com/en/2.3.x/",  "crawlerPrefix": "https://flask.palletsprojects.com/en/2.3.x/"}
{  "name": "Flutter",  "crawlerStart": "https://docs.flutter.dev/",  "crawlerPrefix": "https://docs.flutter.dev/"}
{  "name": "FontAwesome",  "crawlerStart": "https://fontawesome.com/docs/web/",  "crawlerPrefix": "https://fontawesome.com/docs/web/"}
{  "name": "GCP CLI",  "crawlerStart": "https://cloud.google.com/sdk/docs",  "crawlerPrefix": "https://cloud.google.com/sdk/docs"}
{  "name": "Git",  "crawlerStart": "https://git-scm.com/docs",  "crawlerPrefix": "https://git-scm.com/docs"}
{  "name": "GitHub Actions",  "crawlerStart": "https://docs.github.com/en/actions",  "crawlerPrefix": "https://docs.github.com/en/actions"}
{  "name": "GitLab CI",  "crawlerStart": "https://docs.gitlab.com/ee/ci/",  "crawlerPrefix": "https://docs.gitlab.com/ee/ci/"}
{  "name": "Go",  "crawlerStart": "https://go.dev/doc",  "crawlerPrefix": "https://go.dev/doc"}
{  "name": "Godot",  "crawlerStart": "https://docs.godotengine.org/en/stable/",  "crawlerPrefix": "https://docs.godotengine.org/en/stable/"}
{  "name": "Google Maps JS API",  "crawlerStart": "https://developers.google.com/maps/documentation/javascript",  "crawlerPrefix": "https://developers.google.com/maps/documentation/javascript"}
{  "name": "Gradle",  "crawlerStart": "https://docs.gradle.org/current/userguide/userguide.html",  "crawlerPrefix": "https://docs.gradle.org/current/userguide/"}
{  "name": "Grafana",  "crawlerStart": "https://grafana.com/docs/grafana/latest/",  "crawlerPrefix": "https://grafana.com/docs/grafana/latest/"}
{  "name": "GraphQL",  "crawlerStart": "https://graphql.org/learn/",  "crawlerPrefix": "https://graphql.org/learn/"}
{  "name": "HTML",  "crawlerStart": "https://developer.mozilla.org/en-US/docs/Web/HTML",  "crawlerPrefix": "https://developer.mozilla.org/en-US/docs/Web/HTML"}
{  "name": "Heroku",  "crawlerStart": "https://devcenter.heroku.com/categories/reference",  "crawlerPrefix": "https://devcenter.heroku.com/"}
{  "name": "Insomnia",  "crawlerStart": "https://docs.insomnia.rest/",  "crawlerPrefix": "https://docs.insomnia.rest/"}
{  "name": "Ionic",  "crawlerStart": "https://ionicframework.com/docs",  "crawlerPrefix": "https://ionicframework.com/docs"}
{  "name": "JAX",  "crawlerStart": "https://jax.readthedocs.io/en/latest/",  "crawlerPrefix": "https://jax.readthedocs.io/"}
{  "name": "JUnit 5",  "crawlerStart": "https://junit.org/junit5/docs/current/user-guide/",  "crawlerPrefix": "https://junit.org/junit5/docs/current/user-guide/"}
{  "name": "Java",  "crawlerStart": "https://docs.oracle.com/javase/8/docs/api/",  "crawlerPrefix": "https://docs.oracle.com/javase/8/docs/api/"}
{  "name": "Jenkins",  "crawlerStart": "https://www.jenkins.io/doc/",  "crawlerPrefix": "https://www.jenkins.io/doc/"}
{  "name": "Jest",  "crawlerStart": "https://jestjs.io/docs/getting-started",  "crawlerPrefix": "https://jestjs.io/docs/getting-started"}
{  "name": "Jquery",  "crawlerStart": "https://api.jqueryui.com/1.12/",  "crawlerPrefix": "https://api.jqueryui.com/1.12/"}
{  "name": "Keras",  "crawlerStart": "https://keras.io/api/",  "crawlerPrefix": "https://keras.io/api/"}
{  "name": "Kubernetes",  "crawlerStart": "https://kubernetes.io/docs/",  "crawlerPrefix": "https://kubernetes.io/docs/"}
{  "name": "LLVM",  "crawlerStart": "https://llvm.org/docs/",  "crawlerPrefix": "https://llvm.org/docs/"}
{  "name": "Langchain",  "crawlerStart": "https://python.langchain.com/docs/",  "crawlerPrefix": "https://python.langchain.com/docs/"}
{  "name": "Langchain-JS",  "crawlerStart": "https://js.langchain.com/docs/",  "crawlerPrefix": "https://js.langchain.com/docs/"}
{  "name": "Laravel",  "crawlerStart": "https://laravel.com/docs/10.x",  "crawlerPrefix": "https://laravel.com/docs/10.x"}
{  "name": "Linux Man Pages",  "crawlerStart": "https://man7.org/linux/man-pages/dir_all_alphabetic.html",  "crawlerPrefix": "https://man7.org/linux/man-pages/"}
{  "name": "MCP",  "crawlerStart": "https://modelcontextprotocol.io/introduction",  "crawlerPrefix": "https://modelcontextprotocol.io/"}
{  "name": "MLX",  "crawlerStart": "https://ml-explore.github.io/mlx/build/html/",  "crawlerPrefix": "https://ml-explore.github.io/mlx/build/html/"}
{  "name": "Material UI",  "crawlerStart": "https://mui.com/material-ui/getting-started/",  "crawlerPrefix": "https://mui.com/material-ui/"}
{  "name": "Matplotlib",  "crawlerStart": "https://matplotlib.org/stable/api/",  "crawlerPrefix": "https://matplotlib.org/stable/api/"}
{  "name": "Maven",  "crawlerStart": "https://maven.apache.org/guides/",  "crawlerPrefix": "https://maven.apache.org/guides/"}
{  "name": "Microsoft Teams",  "crawlerStart": "https://learn.microsoft.com/en-us/microsoftteams/platform/",  "crawlerPrefix": "https://learn.microsoft.com/en-us/microsoftteams/platform/"}
{  "name": "Mockito",  "crawlerStart": "https://javadoc.io/doc/org.mockito/mockito-core/latest/index.html",  "crawlerPrefix": "https://javadoc.io/doc/org.mockito/mockito-core/latest/"}
{  "name": "MongoDB",  "crawlerStart": "https://www.mongodb.com/docs/manual/",  "crawlerPrefix": "https://www.mongodb.com/docs/manual/"}
{  "name": "MySQL",  "crawlerStart": "https://dev.mysql.com/doc/",  "crawlerPrefix": "https://dev.mysql.com/doc/"}
{  "name": "NLTK",  "crawlerStart": "https://www.nltk.org/",  "crawlerPrefix": "https://www.nltk.org/"}
{  "name": "Neo4j",  "crawlerStart": "https://neo4j.com/docs/",  "crawlerPrefix": "https://neo4j.com/docs/"}
{  "name": "NestJS",  "crawlerStart": "https://docs.nestjs.com/",  "crawlerPrefix": "https://docs.nestjs.com/"}
{  "name": "Netlify",  "crawlerStart": "https://docs.netlify.com/",  "crawlerPrefix": "https://docs.netlify.com/"}
{  "name": "NextJS",  "crawlerStart": "https://nextjs.org/docs",  "crawlerPrefix": "https://nextjs.org/docs"}
{  "name": "Nginx",  "crawlerStart": "http://nginx.org/en/docs/",  "crawlerPrefix": "http://nginx.org/en/docs/"}
{  "name": "NodeJS",  "crawlerStart": "https://nodejs.org/api/",  "crawlerPrefix": "https://nodejs.org/api/"}
{  "name": "Notion",  "crawlerStart": "https://developers.notion.com/reference/",  "crawlerPrefix": "https://developers.notion.com/reference/"}
{  "name": "NumPy",  "crawlerStart": "https://numpy.org/doc/stable/",  "crawlerPrefix": "https://numpy.org/doc/stable/"}
{  "name": "Nuxt",  "crawlerStart": "https://nuxt.com/docs",  "crawlerPrefix": "https://nuxt.com/docs"}
{  "name": "OpenAI",  "crawlerStart": "https://platform.openai.com/docs/",  "crawlerPrefix": "https://platform.openai.com/docs/"}
{  "name": "OpenCV",  "crawlerStart": "https://docs.opencv.org/4.x/",  "crawlerPrefix": "https://docs.opencv.org/4.x/"}
{  "name": "PHP",  "crawlerStart": "https://www.php.net/manual/en/",  "crawlerPrefix": "https://www.php.net/manual/en/"}
{  "name": "Pandas",  "crawlerStart": "https://pandas.pydata.org/docs/",  "crawlerPrefix": "https://pandas.pydata.org/docs/"}
{  "name": "Playwright",  "crawlerStart": "https://playwright.dev/docs/intro",  "crawlerPrefix": "https://playwright.dev/docs/"}
{  "name": "Pnpm",  "crawlerStart": "https://pnpm.io/",  "crawlerPrefix": "https://pnpm.io/"}
{  "name": "PostgreSQL",  "crawlerStart": "https://www.postgresql.org/docs/current/",  "crawlerPrefix": "https://www.postgresql.org/docs/current/"}
{  "name": "Postman",  "crawlerStart": "https://learning.postman.com/docs/",  "crawlerPrefix": "https://learning.postman.com/docs/"}
{  "name": "Prisma",  "crawlerStart": "https://www.prisma.io/docs",  "crawlerPrefix": "https://www.prisma.io/docs"}
{  "name": "Puppeteer",  "crawlerStart": "https://pptr.dev/",  "crawlerPrefix": "https://pptr.dev/"}
{  "name": "PyTorch",  "crawlerStart": "https://pytorch.org/docs/stable/",  "crawlerPrefix": "https://pytorch.org/docs/stable/"}
{  "name": "Python",  "crawlerStart": "https://docs.python.org/3/",  "crawlerPrefix": "https://docs.python.org/3/"}
{  "name": "ROS",  "crawlerStart": "https://docs.ros.org/en/rolling/",  "crawlerPrefix": "https://docs.ros.org/en/rolling/"}
{  "name": "Railway",  "crawlerStart": "https://docs.railway.app/",  "crawlerPrefix": "https://docs.railway.app/"}
{  "name": "React",  "crawlerStart": "https://react.dev/reference/react",  "crawlerPrefix": "https://react.dev/reference/"}
{  "name": "Redis",  "crawlerStart": "https://redis.io/docs/",  "crawlerPrefix": "https://redis.io/docs/"}
{  "name": "Regex",  "crawlerStart": "https://www.regular-expressions.info/",  "crawlerPrefix": "https://www.regular-expressions.info/"}
{  "name": "Remix",  "crawlerStart": "https://remix.run/docs/en/main",  "crawlerPrefix": "https://remix.run/docs/"}
{  "name": "Ruby",  "crawlerStart": "https://docs.ruby-lang.org/en/master/",  "crawlerPrefix": "https://docs.ruby-lang.org/en/"}
{  "name": "Rust",  "crawlerStart": "https://doc.rust-lang.org/book/",  "crawlerPrefix": "https://doc.rust-lang.org/book/"}
{  "name": "Rust Stdlib",  "crawlerStart": "https://doc.rust-lang.org/std/",  "crawlerPrefix": "https://doc.rust-lang.org/std/"}
{  "name": "SQLite",  "crawlerStart": "https://www.sqlite.org/docs.html",  "crawlerPrefix": "https://www.sqlite.org/"}
{  "name": "Scikit-learn",  "crawlerStart": "https://scikit-learn.org/stable/",  "crawlerPrefix": "https://scikit-learn.org/stable/"}
{  "name": "Selenium",  "crawlerStart": "https://www.selenium.dev/documentation/",  "crawlerPrefix": "https://www.selenium.dev/documentation/"}
{  "name": "Sentry",  "crawlerStart": "https://docs.sentry.io/",  "crawlerPrefix": "https://docs.sentry.io/"}
{  "name": "Socket.io",  "crawlerStart": "https://socket.io/docs/v4/",  "crawlerPrefix": "https://socket.io/docs/v4/"}
{  "name": "Solidity",  "crawlerStart": "https://docs.soliditylang.org/en/latest/",  "crawlerPrefix": "https://docs.soliditylang.org/en/latest/"}
{  "name": "Spring",  "crawlerStart": "https://docs.spring.io/spring-framework/reference/",  "crawlerPrefix": "https://docs.spring.io/spring-framework/reference/"}
{  "name": "Stripe",  "crawlerStart": "https://stripe.com/docs",  "crawlerPrefix": "https://stripe.com/docs"}
{  "name": "Supabase",  "crawlerStart": "https://supabase.com/docs",  "crawlerPrefix": "https://supabase.com/docs"}
{  "name": "Svelte",  "crawlerStart": "https://svelte.dev/docs",  "crawlerPrefix": "https://svelte.dev/docs"}
{  "name": "Tailwind",  "crawlerStart": "https://tailwindcss.com/docs",  "crawlerPrefix": "https://tailwindcss.com/docs"}
{  "name": "Terraform",  "crawlerStart": "https://developer.hashicorp.com/terraform/docs",  "crawlerPrefix": "https://developer.hashicorp.com/terraform/docs"}
{  "name": "Three.js",  "crawlerStart": "https://threejs.org/docs/",  "crawlerPrefix": "https://threejs.org/docs/"}
{  "name": "Tinygrad",  "crawlerStart": "https://docs.tinygrad.org",  "crawlerPrefix": "https://docs.tinygrad.org"}
{  "name": "TypeScript",  "crawlerStart": "https://www.typescriptlang.org/docs/",  "crawlerPrefix": "https://www.typescriptlang.org/docs/"}
{  "name": "Unity",  "crawlerStart": "https://docs.unity3d.com/Manual/",  "crawlerPrefix": "https://docs.unity3d.com/Manual/"}
{  "name": "Unreal Engine",  "crawlerStart": "https://docs.unrealengine.com/5.0/en-US/",  "crawlerPrefix": "https://docs.unrealengine.com/5.0/en-US/"}
{  "name": "Vercel",  "crawlerStart": "https://vercel.com/docs",  "crawlerPrefix": "https://vercel.com/docs"}
{  "name": "Vim",  "crawlerStart": "https://vimhelp.org/",  "crawlerPrefix": "https://vimhelp.org/"}
{  "name": "Vite",  "crawlerStart": "https://vitejs.dev/guide/",  "crawlerPrefix": "https://vitejs.dev/guide/"}
{  "name": "Vitest",  "crawlerStart": "https://vitest.dev/guide/",  "crawlerPrefix": "https://vitest.dev/guide/"}
{  "name": "Vue",  "crawlerStart": "https://vuejs.org/guide/introduction.html",  "crawlerPrefix": "https://vuejs.org/guide/"}
{  "name": "Webpack",  "crawlerStart": "https://webpack.js.org/concepts/",  "crawlerPrefix": "https://webpack.js.org/concepts/"}
{  "name": "Zsh",  "crawlerStart": "https://zsh.sourceforge.io/Doc/",  "crawlerPrefix": "https://zsh.sourceforge.io/Doc/"}
{  "name": "help",  "crawlerStart": "https://docs.cursor.com/get-started/welcome",  "crawlerPrefix": "https://docs.cursor.com/"}

140 多个常用的文档。

添加自定义文档

如果您想抓取和索引尚未提供的自定义文档,您可以通过 @Docs > Add new doc 来完成。

实操:调出菜单

在您粘贴所需文档的 URL 后,

将出现以下模式:

实操: confirm 之后会报错,因为 entrypoint 强制要求是一个以文件介绍的 url,而不是 https://www.docsy.dev/docs/ 这种目录形式的 url。

在路径后面加入 index.html 之后,就可以正常抓取了。

https://www.docsy.dev/docs/index.html

然后 Cursor 将索引并学习文档,您将能够像任何其他文档一样将其用作上下文。

如果要索引所有子页面和子目录,请确保在 URL 后面添加一个斜杠

实操:能看到索引的具体的页面

实操:通过 @Docs 调出

管理自定义缓存

在 Cursor Settings > Features > Docs 下,您将看到您添加的文档。您可以在此处编辑、删除或添加新文档。

6 - @Git

了解如何在 Cursor 的 Chat 中使用 @Git 分析差异、查找 bug 并生成提交消息

目前,@Git 仅在 Chat & Composer 中支持

在 Cursor 的 Chat 中,您可以使用 @Git 将 git commits、diffs 或 pull requests 添加到提示词中。

常见用例

@Git 的一个常见用例是允许 Cursor 的 AI 扫描差异并查找可能由差异引起的错误或问题。

您还可以使用 @Diff of Working State 从当前的差异生成提交消息。

实操: 生成的 commit message 还是很不错的,可以参考。

咨询 ai 得到的用法

我来为您解释 Cursor 中 @Git 的使用方法:

根据文档内容,@Git 是 Cursor 中一个强大的功能,目前仅在 Chat 和 Composer 中可用。以下是主要用途:

  1. 代码差异分析

    • 您可以使用 @Git 来分析代码的变更(diffs)
    • AI 可以帮助扫描这些变更,找出潜在的问题或 bug
  2. 提交消息生成

    • 使用 @Diff of Working State 命令可以基于当前的代码变更自动生成 git commit 消息
  3. 代码审查

    • 可以将 git commits、diffs 或 pull requests 添加到对话中
    • AI 可以帮助分析这些变更的影响

使用步骤:

  1. 在 Cursor 的 Chat 界面中
  2. 输入 @Git 或相关命令
  3. 选择您想要分析的内容(比如某个 commit 或当前的代码变更)

这个功能特别适合:

  • 代码审查时快速发现潜在问题
  • 自动生成规范的提交信息
  • 分析代码变更的影响范围

需要注意的是,目前这个功能仅限于 Chat 和 Composer 环境中使用。

如果您想了解更多具体的使用场景或详细信息,建议您尝试在 Cursor 中实际操作一下这些功能。

7 - @Web

@Web 命令自动搜索互联网,以查找 cursor 查询的相关上下文

@Web

使用 @Web,Cursor 根据查询和您提供的上下文构造搜索查询,并搜索 Web 以查找相关信息作为附加上下文。

这可能有助于 Cursor 在线查找最新信息,或者允许 Cursor 在几秒钟内抓取多个网站以找到最佳答案,而无需用户手动搜索任何地方。

实操:咨询明天的上海天气,给了最新的信息(2025-03-28号的天气信息),列出了三个网站。但很奇怪,答复中的明天写的是 2025-03-05,给的三个URL显示的28号的天气。

当使用 agent 模式时,Cursor 将在需要最新信息或其他上下文时自动搜索 Web。

8 - @Definitions

使用 @Definitions 符号将附近的代码定义添加到 Cmd K 上下文

此功能目前仅适用于 Cmd K。

@Definitions 符号将所有附近的定义作为上下文添加到 Cmd K。

9 - @Link

通过链接到外部网站和资源,将 Web 内容用作上下文

粘贴链接

为了让 cursor 在粘贴链接之前访问一个链接,你会看到这个链接是“标记”的。

实操:复制了一个链接 https://www.docsy.dev/docs/adding-content/shortcodes/ 到 chat 中,可以看到链接前面加了一个 @,我让它总结一下:

删除链接

默认情况下,我们会自动解析链接并将其转换为聊天中的 @Links 。如果您希望链接为纯文本,请单击链接,然后单击 “取消链接 ”。

实操:单击一下链接就有取消链接的 unlink 按钮了

您也可以不带格式地粘贴以确保链接未被标记。

实操:windows下是 control + Shift + v 无格式粘贴

10 - @Lint Errors

访问和引用代码库中的 linting 错误

@Lint Errors 符号自动捕获并提供有关当前活动文件中的任何 lint 错误和警告的上下文。

默认情况下 ,Composer 和 Agent 可以看到 lint 错误:

咨询 cursor 给出的答复

让我帮您了解关于 @Lint Errors 的更多信息。我会先搜索相关代码来了解更多细节。

根据搜索结果,我来为您详细解释 Cursor 中的 @Lint Errors 功能:

@Lint Errors 是 Cursor 中的一个重要功能,主要用于:

  1. 基本功能

    • 自动捕获并提供当前活动文件中的任何 lint 错误和警告的上下文
    • 默认情况下,Composer 和 Agent 模式可以看到 lint 错误
  2. 智能修复

    • Cursor 让 AI 可以直接访问代码库中的 linter
    • 当检测到已安装的 Linter 标记的问题时,AI 可以智能地尝试自行修复这些问题
    • 这意味着您将始终获得干净、兼容的代码,而无需手动检查和修复任何问题
  3. 使用场景

    • 在编写代码时自动检测和修复代码规范问题
    • 在代码审查时快速发现潜在问题
    • 确保代码质量和一致性
  4. 注意事项

    • 某些语言(如 Rust)要求在 lint 错误出现之前保存文件,这可能会限制此功能在所有语言中的有效性
    • 该功能主要在 Chat 和 Composer 环境中使用
  5. 与其他功能的集成

    • 与 Tab 功能集成:Tab 可以根据您最近的更改和 linter 错误提出建议
    • 与 Agent 模式集成:Agent 可以自动检测和修复 lint 错误

这个功能是 Cursor 中代码质量控制的重要组成部分,可以帮助开发者保持代码质量,减少手动检查的工作量。

11 - @Recent Changes

访问和引用工作区中的最新更改

cursor 会自动跟踪最近对代码库所做的更改。@Recent Changes 符号允许您将这些修改作为上下文传递。

实操:让 cursor 总结一下最近对代码库所做的更改。

12 - @Cursor Rules

在项目中使用和引用 cursor 规则

@Cursor Rules 符号提供对您为项目设置的项目规则和指导方针的访问,允许您将它们显式应用到上下文。

实操:需要先创建规则

13 - @Notepads

在 cursor 中引用并包含记事本作为上下文

@Notepads 符号允许您在对话中引用和包含您的 Notepads 作为上下文。记事本是功能强大的上下文共享工具,可以在编写器和聊天交互之间架起差距的桥梁,允许您为开发工作流创建可重用的上下文。

实操:TODO

14 - @Summarized Composers

在新的对话中引用以前 Composer 会话的摘要版本作为上下文

在 Composer 中处理复杂任务时,您可能希望引用上下文或以前对话中的决策。@Summarized Composers 符号允许您将以前 Composer 会话的摘要版本作为上下文包含在内。

这在以下情况下特别有用:

  • 您有一个很长的 Composer 会话,其中包含要引用的重要上下文
  • 你开始了一项新的但相关的任务,并希望保持连续性
  • 你想分享上一次会议的推理或决定

cursor 的解释

根据文件内容,我来为您解释 @-summarized-composers 符号的功能:

@-summarized-composers 是一个用于在 Cursor IDE 中引用历史 Composer 会话摘要的特殊符号。它的主要用途包括:

  1. 上下文引用:允许您在新的对话中引用之前 Composer 会话的摘要版本作为上下文。

  2. 使用场景

    • 当您有一个很长的 Composer 会话,其中包含需要引用的重要上下文时
    • 当您开始一个新的但相关的任务,需要保持连续性时
    • 当您需要分享上一次会议的推理或决定时
  3. 优势

    • 帮助保持对话的连续性
    • 避免重复之前的讨论
    • 方便引用历史决策和推理过程

这个功能对于处理复杂任务特别有用,因为它可以帮助您在不同会话之间保持上下文的连贯性,同时避免重复之前已经讨论过的内容。

15 - @Files

使用 # 选择文件,使用 @ 在与 AI agent 聊天时进行上下文控制

使用 # 后跟文件名来关注特定文件。将其与 @ 符号结合,以实现精确的上下文控制。

16 - /command

使用 / 引用打开的编辑器选项卡,并在使用 AI agent 编写聊天时将其作为上下文添加

您可以键入 / 来快速引用打开的编辑器并将其添加为上下文

  • 打开编辑器 :当前打开所有编辑器选项卡
  • 活动编辑器 :视图中的所有编辑器选项卡。这通常发生在分割布局以显示多个编辑器时

实操:菜单和文档有些小的出入

  • “Add open files to context” : 是把所有打开的文件都添加到上下文
  • “Add active files to context” : 是把当前视图中的文件添加到上下文