终端 > 命令输入
YAML 工作流
# YAML 工作流 import DemoVideo from '@components/DemoVideo.astro'; import { Tabs, TabItem } from '@astrojs/starlight/components'; :::danger 您可以继续使用基于 YAML 的工作流,但我们建议使用新的 [Warp Drive 工作流](/knowledge-and-collaboration/warp-drive/workflows/),以获得更好的编辑体验。 ::: ## 它是什么 工作流易于参数化,并且可以通过名称、描述或命令参数进行搜索。Warp 团队和社区提供的[常用工作流](https://github.com/warpdotdev/workflows)可在应用程序中随时使用。此外,您可以在本地或 Git 存储库中创建和设定工作流范围。 ## 如何使用 * 打开 [命令搜索](/terminal/entry/command-search/) 或工作流搜索 `CTRL-SHIFT-R` 面板来查找工作流。 * 进入菜单后,在搜索栏中开始输入以过滤现有工作流。(例如 git、android、npm 等) * 当通过 `ENTER` 键选择工作流时,您可以使用 `SHIFT-TAB` 在参数之间循环切换。 * 您还可以通过鼠标拖动右边缘来水平扩展菜单。 :::note 通过在 **Settings**(设置) > **Features**(功能) > **Workflows**(工作流)中切换“Show Global Workflows”(显示全局工作流)来调整您的 [命令搜索](/terminal/entry/command-search/) 体验。禁用后,您的搜索将仅包含 YAML 和 Warp Drive 工作流。 ::: ## 工作原理 <DemoVideo src="/assets/terminal/yaml_workflows_demo.mp4" label="YAML 工作流演示" /> ### 这与别名有什么不同? 工作流解决了别名的一些主要痛点,特别是: 1. 需要切换上下文 1. 离开 vim、source 点文件或重置 shell 2. 难以附加文档 3. 无法轻松搜索或共享 4. 无法轻松参数化 ## 创建自定义工作流 ### 如何使用 YAML 创建工作流 您可以将本地工作流(作用于您的机器)存储在: <Tabs> <TabItem label="macOS"> ```bash $HOME/.warp/workflows/ ``` </TabItem> <TabItem label="Windows"> ```powershell $env:APPDATA\warp\Warp\data\workflows\ ``` </TabItem> <TabItem label="Linux"> ```bash ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/ ``` </TabItem> </Tabs> 或者,您可以通过将它们保存在 `{{path_to_git_repo}}/.warp/workflows/` 中与团队共享。本地和存储库工作流分别可以在工作流菜单的“My Workflows”(我的工作流)和“Repository Workflows”(存储库工作流)选项卡下访问。有关示例,请参阅 [Workflows 仓库](https://github.com/warpdotdev/Workflows/tree/main/specs) 中的现有工作流规范。此外,我们在下方概述了文件格式: <details> <summary><a href="https://github.com/warpdotdev/Workflows/blob/main/FORMAT.md">工作流文件格式</a></summary> 工作流文件格式是 [yaml](https://yaml.org/) 文件,必须具有 `.yml` 或 `yaml` 扩展名。如果您是 YAML 新手并想了解更多信息,请参阅 [Y 分钟学会 YAML](https://learnxinyminutes.com/docs/yaml/)。 --- **`name`** 工作流的名称。必填。 **`command`** 选择工作流时执行的命令。必填。 **`tags`** 用于对工作流进行分类的标签数组。可选。 ```yaml tags: ["git", "GitHub"] ``` **`description`** 工作流及其功能的描述。可选。 **`source_url`** 工作流最初生成的 URL。这将在 [commands.dev](https://www.commands.dev/) 中显示以用于归属。可选。 **`author`** 工作流的原始作者。例如,如果此工作流是从 StackOverflow 生成的,则 `author` 将是该 StackOverflow 帖子的 `author`。这将在 [commands.dev](https://www.commands.dev/) 中显示以用于归属。可选。 **`author_url`** 工作流原始作者的 URL。例如,如果此工作流是从 StackOverflow 生成的,则 `author_url` 将是 StackOverflow 作者的个人资料页面。这将在 [commands.dev](https://www.commands.dev/) 中显示以用于归属。可选。 **`shells`** 此工作流有效的 shell 列表。如果未指定,则假定工作流在所有 shell 中都有效。这必须是 `zsh`、`bash` 或 `fish` 之一。 **`arguments`** 工作流可以具有参数化参数,以指定需要由用户填写的工作流部分。您可以通过用两个大括号 (`{{工作流是在 Warp 中执行和共享命令的一种更简单的方法。
它是什么
标题为“它是什么”的章节工作流易于参数化,并且可以通过名称、描述或命令参数进行搜索。Warp 团队和社区提供的 常用工作流 可在应用程序中随时使用。此外,您可以在本地或 Git 存储库中创建和设定工作流范围。
如何使用
标题为“如何使用”的章节- 打开 命令搜索 或工作流搜索
CTRL-SHIFT-R面板来查找工作流。 - 进入菜单后,在搜索栏中开始输入以过滤现有工作流。(例如 git、android、npm 等)
- 当通过
ENTER键选择工作流时,您可以使用SHIFT-TAB在参数之间循环切换。 - 您还可以通过鼠标拖动右边缘来水平扩展菜单。
工作原理
标题为“工作原理”的章节这与别名有什么不同?
标题为“这与别名有什么不同?”的章节工作流解决了别名的一些主要痛点,特别是
- 需要切换上下文
- 离开 vim、source 点文件或重置 shell
- 难以附加文档
- 无法轻松搜索或共享
- 无法轻松参数化
创建自定义工作流
标题为“创建自定义工作流”的章节如何使用 YAML 创建工作流
标题为“如何使用 YAML 创建工作流”的章节您可以将本地工作流(作用于您的机器)存储在
$HOME/.warp/workflows/$env:APPDATA\warp\Warp\data\workflows\${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/或者,您可以通过将它们保存在 {{path_to_git_repo}}/.warp/workflows/ 中与团队共享。本地和存储库工作流分别可以在工作流菜单的“My Workflows”(我的工作流)和“Repository Workflows”(存储库工作流)选项卡下访问。
有关示例,请参阅 Workflows 仓库 中的现有工作流规范。此外,我们在下方概述了文件格式
工作流文件格式
工作流文件格式是 yaml 文件,必须具有 `.yml` 或 `yaml` 扩展名。如果您是 YAML 新手并想了解更多信息,请参阅 Y 分钟学会 YAML。
name
工作流的名称。必填。
command
选择工作流时执行的命令。必填。
tags
用于对工作流进行分类的标签数组。可选。
tags: ["git", "GitHub"]description
工作流及其功能的描述。可选。
source_url
工作流最初生成的 URL。这将在 commands.dev 中显示以用于归属。可选。
author
工作流的原始作者。例如,如果此工作流是从 StackOverflow 生成的,则 author 将是该 StackOverflow 帖子的 author。这将在 commands.dev 中显示以用于归属。可选。
author_url
工作流原始作者的 URL。例如,如果此工作流是从 StackOverflow 生成的,则 author_url 将是 StackOverflow 作者的个人资料页面。这将在 commands.dev 中显示以用于归属。可选。
shells
此工作流有效的 shell 列表。如果未指定,则假定工作流在所有 shell 中都有效。这必须是 zsh、bash 或 fish 之一。
arguments
工作流可以具有参数化参数,以指定需要由用户填写的工作流部分。
您可以通过用两个大括号 ({{<argument>}}) 包围它来指定工作流命令的哪一部分映射到参数。
例如工作流命令
for {{variable}} in {{sequence}}; do {{command}}done包括 3 个参数:variable、sequence 和 command。
arguments.name
参数的名称。参数名称在命令中用于指定参数的范围。必填。
name: Example Workflowcommand: echo {{string}}arguments: - name: string description: The value to echoarguments.description
参数的描述。这将在 commands.dev 和 Warp 中显示,以帮助用户填写工作流参数。可选
arguments.default_value
参数的默认值。如果指定,default_value 将替换命令中的参数名称。可选
工作流的保存位置
标题为“工作流的保存位置”的章节本地工作流的作用域是您的机器。存储库工作流的作用域是 Git 存储库,任何克隆了该存储库的人都可以访问。
# Local Workflow Path$HOME/.warp/workflows/
# Repository Workflow Path{{path_to_git_repo}}/.warp/workflows# Local Workflow Path$env:APPDATA\warp\Warp\data\workflows\
# Repository Workflow Path{{path_to_git_repo}}\.warp\workflows# Local Workflow Path${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/
# Repository Workflow Path{{path_to_git_repo}}/.warp/workflows本地工作流
标题为“本地工作流”的章节首先,在以下位置创建一个工作流子目录
mkdir -p $HOME/.warp/workflows/New-Item -Path "$env:APPDATA\warp\Warp\data\workflows\" -ItemType Directorymkdir -p ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/将工作流的 .yaml 文件添加到此目录;如果文件格式有效,Warp 应自动将其加载到工作流菜单中。
cp ~/path/to/my_awesome_workflow.yaml {{path_to_local_workflow_folder}}
存储库工作流
标题为“存储库工作流”的章节您可以像添加本地工作流一样添加存储库工作流。在存储库的根目录中创建一个 Workflows 文件夹并保存您的 .yaml 文件,如下所示
cd {{repository_path}}mkdir -p .warp/workflows/cp ~/path/to/my_awesome_workflow.yaml {{path_to_local_workflow_folder}}全局工作流
标题为“全局工作流”的章节您可以通过 fork Workflows 仓库 并提交拉取请求来贡献工作流,这些工作流将提供给其他 Warp 用户。有关更多详细信息,请参阅 贡献 部分。