Skip to content

Cursor ⌘K 内联编辑

免责声明:本文档是 Cursor 官方文档中的 ⌘K 功能页面第三方非官方中文翻译,仅供学习参考。内容可能不完全反映最新的官方信息,请以 Cursor 官方文档 为准。所有商标和版权归 Cursor/Anysphere 公司所有。

本文档介绍如何使用 Cursor 中的 ⌘K(在 Windows/Linux 上为 Ctrl+K)功能生成、编辑代码和使用提示栏询问问题。


概述

⌘K(在 Windows/Linux 上为 Ctrl+K)功能允许您在编辑器窗口中生成新代码或编辑现有代码。与 Ask 功能不同,⌘K 是设计用于直接在代码编辑区域内工作的内联 AI 工具。

提示栏

在 Cursor 中,当您按下 Ctrl/⌘+K 时出现的栏被称为"提示栏"(Prompt Bar)。它的工作方式类似于聊天的 AI 输入框,您可以在其中正常输入,或使用 @ 符号引用其他上下文。

提示栏是一个轻量级的界面,专为快速代码生成和编辑而设计,直接在您的编辑环境中工作,无需切换到单独的对话窗口。

内联生成

如果在按下 Ctrl/⌘+K 时没有选择任何代码,Cursor 将根据您在提示栏中输入的提示生成新代码。这对于以下场景特别有用:

  1. 在当前位置快速生成新函数或方法
  2. 添加新的代码模块或组件
  3. 生成数据结构或配置代码
  4. 基于自然语言描述实现新功能

生成的代码将直接插入到光标所在的位置,成为文件的一部分。

内联编辑

对于就地编辑,只需选择要编辑的代码,然后在提示栏中输入您的指令。这样,您可以:

  1. 重构或优化选定的代码
  2. 添加错误处理或日志记录
  3. 修复错误或调整逻辑
  4. 改进代码风格或格式
  5. 将一种编程语言转换为另一种

内联编辑功能可以理解您选择的代码上下文,并根据您的自然语言指令进行智能修改。

后续指令

在每次生成之后,您可以通过在提示栏中添加更多指令来进一步完善您的要求,然后按下 Enter 让 AI 根据您的后续指令重新生成。

这种迭代方法允许您:

  1. 细化或扩展初始生成的代码
  2. 纠正或调整 AI 的输出
  3. 分步骤处理复杂的代码更改
  4. 与 AI 进行连续对话以改进代码

后续指令会保留之前的上下文,因此 AI 可以理解您希望如何改进之前的结果。

默认上下文

默认情况下,除了您手动包含的 @ 符号引用,Cursor 会尝试查找不同类型的有用信息来改进代码生成。

额外的上下文可能包括相关文件、最近查看的文件等。收集后,Cursor 会根据与您的编辑/生成的相关性对上下文项进行排名,并为大型语言模型保留最相关的项。

这种智能上下文收集使 ⌘K 功能能够生成更相关、更集成的代码,减少了手动提供所有必要上下文的需要。

快速问答

如果您在提示栏中按下 Option/Alt+Enter,Cursor 将回答您对选择内容及附加上下文的任何问题。

此对话的内容可以在后续生成中继续使用,所以您可以在 Cursor 回复后简单地输入"执行它"来根据快速问答的结果生成代码。

这个功能特别适合:

  1. 在编写或修改代码前先了解现有代码
  2. 询问特定实现的工作原理
  3. 了解最佳做法或可能的替代方案
  4. 在生成复杂代码前验证您的方法

使用技巧

为了充分利用 ⌘K 功能,请考虑以下技巧:

  1. 明确具体:提供清晰、具体的指令以获得更好的结果
  2. 利用选择功能:精确选择要修改的代码可以提高准确性
  3. 使用迭代:通过后续指令逐步完善复杂的生成或编辑
  4. 结合快速问答:在生成代码前使用 Option/Alt+Enter 澄清您的疑问
  5. 利用上下文引用:使用 @ 符号明确引用相关文件或符号

与其他功能的区别

⌘K 功能与 Cursor 的其他 AI 功能有以下区别:

  1. 相对于 Ask:⌘K 专注于内联代码生成和编辑,而 Ask 更适合深入的对话式问答
  2. 相对于 Tab:⌘K 用于完整的代码生成和复杂编辑,Tab 主要用于代码补全
  3. 相对于 Agent:⌘K 是轻量级的内联工具,而 Agent 提供更全面的结对编程体验
  4. 相对于 Composer:⌘K 主要用于单文件编辑,Composer 专门用于多文件编辑

根据您的具体需求选择最合适的工具可以显著提高编码效率。


⌘K 功能是 Cursor 中最灵活、最方便的 AI 驱动编码工具之一,它将强大的代码生成和编辑能力直接集成到您的编辑工作流程中。通过掌握这个工具,您可以显著提高编码速度,减少重复工作,并利用 AI 的能力解决复杂的编程挑战。

如有任何问题,请参考常见问题解答或访问社区论坛寻求帮助。

本站内容采用 "署名-非商业性使用-禁止演绎 4.0 国际许可协议" 进行许可