Generate(生成)

使用自然语言来查找命令或输入内容,可以直接从命令行输入,也可以在任何交互式命令或程序内使用。

什么是 Generate?

Generate 帮助你将自然语言查询转化为精确的命令,作为终端输入或交互式命令和程序内的上下文建议,无论你使用的是 psql、gdb、git、mysql 还是其他 CLI 工具。

Generate 由 OpenAI、Anthropic 等 API 提供商的大型语言模型(LLM)支持,且完全为可选功能。

目前你需要在线才能使用该功能。如果无法使用,可能是你的 ISP 或防火墙阻止了对 app.warp.dev 的访问。


使用 AI 进行 Generate 的方式

以命令行输入的形式生成命令

在命令行输入框中输入 #,即可打开命令建议界面。

Generate(生成) - 图1

生成命令的操作示范:

  1. CTRL + \`` 或在文本输入框中输入#`,打开自然语言搜索界面。
  2. 在输入框中输入你想要完成的操作,比如 “replace a string in a file”(替换文件中的字符串)。
  3. 系统会实时生成相关命令,你可以保留当前提示或修改它来生成新的命令。
  4. 找到合适的命令后,可以直接运行,或者保存为 Workflow,存入 Warp Drive 方便以后调用。

在交互式 CLI 中生成文本和上下文建议

在交互式 CLI 应用中,你也可以用自然语言生成输入内容。

Generate(生成) - 图2 生成 SQL 查询示例

Generate(生成) - 图3 生成 Vim 输入示例


macOS 操作流程

  1. 在长时间运行的交互式命令中,当提示出现时,按 CMD + I
  2. 在弹出的输入框中输入你想生成的内容。例如,“show me all tables in my Postgres database”(显示我 Postgres 数据库里的所有表),或者在 Vim 中,“generate a recursive Fibonacci function and save it to the file”(生成递归斐波那契函数并保存到文件)。
  3. 结果会实时生成,使用你选择的 LLM 模型
  4. 如果想细化或追加查询,按 CMD + Y,然后可以通过向上键 编辑上一条消息,或输入新文本添加后续问题。
  5. 找到想要的文本后,按 Enter 或点击 “Accept” 按钮确认。

Windows 操作流程

  1. 在长时间运行的交互式命令中,当提示出现时,按 CTRL + SHIFT + I
  2. 输入你想生成的内容,示例同上。
  3. 结果实时生成,使用你选择的 LLM 模型
  4. CTRL + SHIFT + Y 细化或追加查询,编辑或添加后续文本。
  5. Enter 或点击 “Accept” 确认结果。

Linux 操作流程

  1. 在长时间运行的交互式命令中,当提示出现时,按 CTRL + SHIFT + I
  2. 输入你想生成的内容,示例同上。
  3. 结果实时生成,使用你选择的 LLM 模型
  4. CTRL + SHIFT + Y 细化或追加查询,编辑或添加后续文本。
  5. Enter 或点击 “Accept” 确认结果。

其他支持使用 Generate 的交互式 CLI 示例

  • 数据库 REPL(如 psql、mysql、sqlite):生成 SQL 查询,如“create a table to store user data”(创建一个存储用户数据的表)或“show me all the rows in orders for the last month”(显示上个月订单的所有行)。
  • 文本编辑器(如 vim、nano):快速生成文本,如 markdown 标题、代码块注释,或 CSS 样式模板。
  • Python REPL(如 ipython、python):快速生成 Python 代码片段,比如“create a simple plot of x”(绘制一个简单的 x 轴图)或“write a unit test for this function”(为此函数编写单元测试)。
  • 调试工具(如 gdb、lldb):获取设置断点或查看内存的命令。
  • 版本控制(如 git rebase -i):通过描述你的目标来加速复杂的 git 操作,比如“interactively rebase master onto feature-branch”(交互式地将 master rebase 到 feature-branch)。
  • 云服务命令行(如 gcloud、aws cli):更快地进行资源管理或环境搭建,比如“create a new Kubernetes cluster”(创建新的 Kubernetes 集群)或“provision a new RDS instance”(配置新的 RDS 实例)。