Cursor 入门教程2 - 你真的会用提示栏(Cmd K)功能了吗?
提示栏(Cmd K)功能是用户引导AI辅助编程怎么做的最快速方式,这弥补了 AI 不能完全理解用户意图的缺陷。本文会介绍 Cursor 提示栏(Cmd K)的基本功能,以及一些使用技巧。
- 怎么在 Cursor 中快速生成 git commit message?
- 提示栏(Cmd K)都有哪些使用技巧?
- 你知道提示栏(Cmd K)和聊天功能(Cmd L) 有什么不同吗?
本文会介绍 Cursor AI辅助编程的第二个主要功能:提示栏(Cmd K),让我们一起在下面的内容中寻找这些问题的答案吧。
什么是提示栏(Cmd K)功能
如果说Tab功能是AI辅助编码的最直接形式(直接生成代码),那么提示栏(Cmd K)就是用户需要引导AI怎么做的最快速方式,这弥补了 AI 不能完全理解用户意图的缺陷。
提示栏(Cmd K)是 Cursor 中最快速与 AI 交互的方式。它就像一个随时待命的编程助手,让你能快速获得 AI 的帮助。
与聊天功能(Cmd L)不同的是,提示栏(Cmd K)主要负责用来生成或修改局部的代码, 而聊天功能(Cmd L)是用来针对更宽泛的代码问题进行对话的,更好的支持多轮的对话,可以针对更宽泛的编程问题进行解答。
Cursor 中的提示栏分为两个类型:
- 代码编辑提示栏: 在代码框中使用,主要是用来补充或编辑代码。
- 终端提示栏: 在终端框中使用,主要是用来生成终端中的命令。
代码编辑提示栏
在代码编辑框中,按下Cmd K
键(在Windows/Linux上是Ctrl K
),就会弹出提示栏(如下图所示),用户可以在提示栏中输入prompt,生成代码建议。
使用的上下文信息
上下文信息的有效性决定了生成的代码质量。
在代码编辑的提示栏使用时,Cursor会自动尝试找到有用的信息来改善代码生成,除了你手动包含的@符号外。还会有这些额外的上下文:
- 与你当前编辑的代码相关的文件
- 最近查看的文件
Cursor会根据与你的编辑/生成的相关性对上下文项进行排序,并保留最相关的项目作为大型语言模型的上下文。
内联生成
如果在按下Cmd K
时没有选中任何代码,Cursor将根据你在提示栏中输入的内容生成新代码。
内联编辑
如果按下Cmd K
时选中某段代码,Cursor将根据你在提示栏中输入的内容修改选中的代码。
终端提示栏
在Cursor的内置终端中,你可以按下Cmd K
(在Windows/Linux上是Ctrl K
)来打开终端底部的提示栏。
- 在提示栏里,用简单的话说说你想在终端里做什么。
- Cursor 会根据你的描述,自动帮你写出一个终端命令。
- 如果你觉得这个命令可以用:
- 按一下
Esc
键,命令就会出现在终端里,但还不会执行。 - 如果你想立即执行这个命令,就按
Cmd + Enter
。
- 按一下
使用的上下文信息
终端Cmd K默认会考虑以下上下文:
- 终端里面最近的历史记录
- 提示栏中的任何其他内容
技巧
后续指示
在使用AI生成代码或回答时,我们经常会发现第一次的结果不够完美。这就是为什么我们需要"后续指示"这个功能。它就像是在和AI对话一样,让你可以一步步引导AI,直到得到你想要的结果。
比如说,AI第一次生成的代码可能有点问题,你可以直接在提示栏里说"这个函数需要添加错误处理"。然后按下Enter
,AI就会根据你的新指示修改代码。你不需要重新开始整个过程,而是可以在原有的基础上继续改进。
快速回答
有时候,我们可能需要快速了解某段代码的功能或获取一些简单的信息,但又不想立即生成或修改代码。这就是快速回答功能的用武之地。
如果你在提示栏中按Option/Alt Enter
,Cursor会立即回答你关于选中内容和相关上下文的任何问题(而不会生成或修改代码)。
这个功能特别有用,因为:
- 它能快速解答你的疑问,帮你更好地理解代码。
- 你不需要切换到聊天窗口,可以直接在编辑器中获得答案。
- 这个对话的内容会被记住,所以你可以在后续的操作中利用这些信息。
快速生成 git commit message
你可以使用终端提示栏快速生成git commit消息。
步骤:
- 在终端中,输入‘git diff | cat’,获取最近的修改。
- 然后输入‘git add .’,把所有修改添加到暂存区。
- 按下
Cmd K
,在提示栏中输入‘git commit message’, Cursor会给你生成一个git commit命令并带有生成的commit message。 - 直接按 Cmd + Enter 执行命令,整个过程一气呵成。
总结
通过使用提示栏(Cmd K)功能,你可以快速生成和修改代码,生成git commit message,甚至可以快速回答关于代码的简单问题。这些功能可以帮助你更高效地编写代码,节省时间,提高工作效率。