如何在 zsh 中为 Azure CLI 启用命令完成?

How to enable command completion for Azure CLI in zsh?

我发现了 Azure CLI(az 命令)的 bash[1] 命令完成的提示,但我没有找到任何关于如何 install/enable 用于 zsh。任何人都知道如何做到这一点,如果可能的话?如果相关的话,我使用 oh-my-zsh。

[1] https://docs.microsoft.com/en-us/cli/azure/get-started-with-azure-cli?view=azure-cli-latest#finding-commands

在 zsh 中可以完成 az

  1. 从 Azure CLI git 存储库获取 bash 的完成并将此文件存储在您的 zsh 启动脚本可以找到它的地方:https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion

  2. 在 zsh 中启用 bash 自动完成 if it's not enabled already:

    autoload -U +X bashcompinit && bashcompinit
    
  3. 为 az:

    启用命令补全
    source /path/to/az.completion
    

可以将第 2 步和第 3 步中的代码片段添加到 shell 启动文件(.zshrc 或类似文件)以使更改永久生效。

此外,bash 完成文件应该已经安装在您的系统上。

寻找/etc/bash_completion.d/azure-cli

如果文件存在,您可以跳过已接受答案中的第 1 步并直接获取该文件。

在 MacBook 中

  1. 下载 Bash_completion 脚本
  2. 将 az bash 完成脚本放在 /usr/local/etc/bash_completion.d
  3. 确保 az 脚本具有可执行权限。
  4. 更新您的 .zshrc 文件如下 自动加载 bashcompinit && bashcompinit 来源 /usr/local/etc/bash_completion.d/az
  5. 重新启动您的终端。

对于bash,步骤如下:

1: AzureJumpBox $ cd /etc/bash_completion.d/ AzureJumpBox $ ls apport_completion azure-cli git-提示grub

2: AzureJumpBox $来源/etc/bash_completion.d/azure-cli

3: AzureJumpBox $ az aks 您将看到所有选项

如果您的 OS 有 /etc/bash_completion.d/azure-cli,那么 oh-my-zsh 就很简单:

$ ln -s /etc/bash_completion.d/azure-cli ~/.oh-my-zsh/custom/az.zsh
$ source ~/.zshrc

或者您必须下载它:

$ wget https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion \
  -O ~/.oh-my-zsh/custom/az.zsh

使用 Homebrew 在 macOS Monterey 上安装了 Az CLI 我在我的 ~/.zshrc 文件中使用了这个命令:

autoload -U +X bashcompinit && bashcompinit
source /opt/homebrew/etc/bash_completion.d/az

自动完成已部署到另一个位置。