@符号
- 1: 概述
- 2: @Files
- 3: @Folders
- 4: @Code
- 5: @Docs
- 6: @Git
- 7: @Web
- 8: @Definitions
- 9: @Link
- 10: @Lint Errors
- 11: @Recent Changes
- 12: @Cursor Rules
- 13: @Notepads
- 14: @Summarized Composers
- 15: @Files
- 16: /command
1 - 概述
在 cursor 输入框中,例如 Composer、Chat 和 Cmd K中,您可以通过键入 @
来使用 @符号。会弹出菜单显示建议列表,它将自动过滤,只显示根据您的输入最相关的建议。
Keyboard Shortcuts 键盘快捷键
您可以使用上/下箭头键浏览建议列表。您可以按 Enter
键选择建议。如果建议是一个类别,如 Files
,建议将被过滤,只显示该类别中最相关的项目。
以下是所有可用的@符号列表:
- @Files - 引用项目中的特定文件
- @Folders - 引用整个文件夹以获得更广泛的上下文
- @Code - 引用代码库中的特定代码片段或符号
- @Docs - 访问文档和指南
- @Git - 访问 git 历史和更改
- @Notepads - 访问记事本
- @Summarized Composers - 使用摘要 composer 会话
- @Cursor Rules - 使用 cursor 规则
- @Web - 应用外部 Web 资源和文档
- @Link (paste) - 创建指向特定代码或文档的链接
- @Recent Changes - 创建指向特定代码或文档的链接
- @Codebase - 引用您的整个代码库作为上下文(仅聊天)
- @Lint Errors - 引用lint错误(仅聊天)
- @Definitions - 查找符号定义(仅限Cmd K)还有一些其他符号可以使用:
- # Files - 将文件添加到上下文而不引用
- / Commands - 将打开的和活动的文件添加到上下文
2 - @Files
在人工智能输入框中,如 Chat 和 Cmd K,您可以通过使用 @Files 引用整个文件。此外,如果您继续在 @ 之后键入,您将在 @Code 策略之后看到文件搜索结果。
为了确保您引用的文件是正确的文件,光标将显示文件路径的预览。当您在不同的文件夹中有多个同名文件时,这尤其有用。
实操:同名文件太多时体验很差,还是拖放吧
聊天长文件引用
在 Cursor 的聊天中,如果文件的内容太长,Cursor 会将文件分成更小的块,并根据与查询的相关性对其进行重新排序。
拖放
您可以将文件从主侧边栏拖放到 Composer、Chat 或 Cmd K 中,以将其添加为上下文。
实操:这个比较简单方便,尤其是同名文件很多时
3 - @Folders
您可以在 Cursor 中引用整个文件夹作为上下文。当将 @Folders 与 Agent 一起使用时,它会附加目录中所有项目的列表,这允许 Agent 自己搜索内容。这使代理能够根据手头任务的需要独立地浏览和分析文件夹的内容。
实操:在 chat 窗口可以调出 files & folders:
cmd k 不行,只有 @files
4 - @Code
要引用特定的代码段,可以使用 @Code 符号。
代码预览
与 @Files 符号类似,Cursor 将显示代码内容的预览,以便您可以验证所引用的代码是否正确。
实操:有不好代码
从编辑器
另一种添加代码片段作为上下文的方法是选择要引用的代码,然后单击 “添加到聊天”(Ctrl/Shift L)或“添加到编辑”(Ctrl/Shift K)。
这将把选定的代码段添加到聊天输入框或当前活动的 Cmd K 提示栏中。
实操:还是这个方便。
5 - @Docs
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 之后,就可以正常抓取了。
然后 Cursor 将索引并学习文档,您将能够像任何其他文档一样将其用作上下文。
如果要索引所有子页面和子目录,请确保在 URL 后面添加一个斜杠
实操:能看到索引的具体的页面
实操:通过 @Docs 调出
管理自定义缓存
在 Cursor Settings > Features > Docs 下,您将看到您添加的文档。您可以在此处编辑、删除或添加新文档。
6 - @Git
目前,@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 中可用。以下是主要用途:
-
代码差异分析
- 您可以使用 @Git 来分析代码的变更(diffs)
- AI 可以帮助扫描这些变更,找出潜在的问题或 bug
-
提交消息生成
- 使用
@Diff of Working State
命令可以基于当前的代码变更自动生成 git commit 消息
- 使用
-
代码审查
- 可以将 git commits、diffs 或 pull requests 添加到对话中
- AI 可以帮助分析这些变更的影响
使用步骤:
- 在 Cursor 的 Chat 界面中
- 输入 @Git 或相关命令
- 选择您想要分析的内容(比如某个 commit 或当前的代码变更)
这个功能特别适合:
- 代码审查时快速发现潜在问题
- 自动生成规范的提交信息
- 分析代码变更的影响范围
需要注意的是,目前这个功能仅限于 Chat 和 Composer 环境中使用。
如果您想了解更多具体的使用场景或详细信息,建议您尝试在 Cursor 中实际操作一下这些功能。
7 - @Web
@Web
使用 @Web,Cursor 根据查询和您提供的上下文构造搜索查询,并搜索 Web 以查找相关信息作为附加上下文。
这可能有助于 Cursor 在线查找最新信息,或者允许 Cursor 在几秒钟内抓取多个网站以找到最佳答案,而无需用户手动搜索任何地方。
实操:咨询明天的上海天气,给了最新的信息(2025-03-28号的天气信息),列出了三个网站。但很奇怪,答复中的明天写的是 2025-03-05,给的三个URL显示的28号的天气。
当使用 agent 模式时,Cursor 将在需要最新信息或其他上下文时自动搜索 Web。
8 - @Definitions
此功能目前仅适用于 Cmd K。
@Definitions 符号将所有附近的定义作为上下文添加到 Cmd K。
9 - @Link
粘贴链接
为了让 cursor 在粘贴链接之前访问一个链接,你会看到这个链接是“标记”的。
实操:复制了一个链接 https://www.docsy.dev/docs/adding-content/shortcodes/ 到 chat 中,可以看到链接前面加了一个 @,我让它总结一下:
删除链接
默认情况下,我们会自动解析链接并将其转换为聊天中的 @Links 。如果您希望链接为纯文本,请单击链接,然后单击 “取消链接 ”。
实操:单击一下链接就有取消链接的 unlink 按钮了
您也可以不带格式地粘贴以确保链接未被标记。
实操:windows下是 control + Shift + v 无格式粘贴
10 - @Lint Errors
@Lint Errors 符号自动捕获并提供有关当前活动文件中的任何 lint 错误和警告的上下文。
默认情况下 ,Composer 和 Agent 可以看到 lint 错误:
咨询 cursor 给出的答复
让我帮您了解关于 @Lint Errors 的更多信息。我会先搜索相关代码来了解更多细节。
根据搜索结果,我来为您详细解释 Cursor 中的 @Lint Errors 功能:
@Lint Errors 是 Cursor 中的一个重要功能,主要用于:
-
基本功能
- 自动捕获并提供当前活动文件中的任何 lint 错误和警告的上下文
- 默认情况下,Composer 和 Agent 模式可以看到 lint 错误
-
智能修复
- Cursor 让 AI 可以直接访问代码库中的 linter
- 当检测到已安装的 Linter 标记的问题时,AI 可以智能地尝试自行修复这些问题
- 这意味着您将始终获得干净、兼容的代码,而无需手动检查和修复任何问题
-
使用场景
- 在编写代码时自动检测和修复代码规范问题
- 在代码审查时快速发现潜在问题
- 确保代码质量和一致性
-
注意事项
- 某些语言(如 Rust)要求在 lint 错误出现之前保存文件,这可能会限制此功能在所有语言中的有效性
- 该功能主要在 Chat 和 Composer 环境中使用
-
与其他功能的集成
- 与 Tab 功能集成:Tab 可以根据您最近的更改和 linter 错误提出建议
- 与 Agent 模式集成:Agent 可以自动检测和修复 lint 错误
这个功能是 Cursor 中代码质量控制的重要组成部分,可以帮助开发者保持代码质量,减少手动检查的工作量。
11 - @Recent Changes
cursor 会自动跟踪最近对代码库所做的更改。@Recent Changes 符号允许您将这些修改作为上下文传递。
实操:让 cursor 总结一下最近对代码库所做的更改。
12 - @Cursor Rules
@Cursor Rules 符号提供对您为项目设置的项目规则和指导方针的访问,允许您将它们显式应用到上下文。
实操:需要先创建规则
13 - @Notepads
@Notepads 符号允许您在对话中引用和包含您的 Notepads 作为上下文。记事本是功能强大的上下文共享工具,可以在编写器和聊天交互之间架起差距的桥梁,允许您为开发工作流创建可重用的上下文。
实操:TODO
14 - @Summarized Composers
在 Composer 中处理复杂任务时,您可能希望引用上下文或以前对话中的决策。@Summarized Composers 符号允许您将以前 Composer 会话的摘要版本作为上下文包含在内。
这在以下情况下特别有用:
- 您有一个很长的 Composer 会话,其中包含要引用的重要上下文
- 你开始了一项新的但相关的任务,并希望保持连续性
- 你想分享上一次会议的推理或决定
cursor 的解释
根据文件内容,我来为您解释 @-summarized-composers
符号的功能:
@-summarized-composers
是一个用于在 Cursor IDE 中引用历史 Composer 会话摘要的特殊符号。它的主要用途包括:
-
上下文引用:允许您在新的对话中引用之前 Composer 会话的摘要版本作为上下文。
-
使用场景:
- 当您有一个很长的 Composer 会话,其中包含需要引用的重要上下文时
- 当您开始一个新的但相关的任务,需要保持连续性时
- 当您需要分享上一次会议的推理或决定时
-
优势:
- 帮助保持对话的连续性
- 避免重复之前的讨论
- 方便引用历史决策和推理过程
这个功能对于处理复杂任务特别有用,因为它可以帮助您在不同会话之间保持上下文的连贯性,同时避免重复之前已经讨论过的内容。
15 - @Files
使用 # 后跟文件名来关注特定文件。将其与 @ 符号结合,以实现精确的上下文控制。
16 - /command
您可以键入 / 来快速引用打开的编辑器并将其添加为上下文
- 打开编辑器 :当前打开所有编辑器选项卡
- 活动编辑器 :视图中的所有编辑器选项卡。这通常发生在分割布局以显示多个编辑器时
实操:菜单和文档有些小的出入
- “Add open files to context” : 是把所有打开的文件都添加到上下文
- “Add active files to context” : 是把当前视图中的文件添加到上下文