如何在 zsh 中为 Azure CLI 启用命令补全?

29

在Windows的cmd或者powershell中,是否有自动补全功能? - Rajesh Swarnkar
8个回答

40

在zsh中可以为az获得自动补全功能。

  1. 从Azure CLI git repo获取bash的自动补全文件,并将其存储到一个zsh启动脚本可以找到的位置:https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion

  2. 如果尚未启用,则在zsh中启用bash自动补全:https://dev59.com/KXA75IYBdhLWcg3wg5fs

autoload -U +X bashcompinit && bashcompinit
  • 启用 az 命令的自动完成功能:

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


    3
    你应该将上面提供的autoloadsource命令都添加到你的.zshrc文件中,因为autoload命令不能在不同的会话之间保持,必须在source命令之前运行。非常好的答案,只想澄清一下。 - jboulter11
    1
    不确定为什么微软没有在官方支持ZSH方面投入一些努力。 - Laith Leo Alobaidy

    11
    在 macOS Monterey 上使用 Homebrew 安装 Az CLI,我在我的 `~/.zshrc` 文件中使用了以下命令:
    autoload -U +X bashcompinit && bashcompinit
    source /opt/homebrew/etc/bash_completion.d/az
    

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


    Ubuntu的路径:/home/linuxbrew/.linuxbrew/etc/bash_completion.d/az - undefined

    10

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

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

    如果该文件存在,则可以跳过已接受答案中的步骤1并直接源化该文件。


    7

    如果您的操作系统中有/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
    

    2

    在MacBook中

    1. 下载Bash_completion脚本。
    2. 将az bash完成脚本放置在/usr/local/etc/bash_completion.d中。
    3. 确保az脚本具有可执行权限。
    4. 按照以下方式更新您的.zshrc文件 autoload bashcompinit && bashcompinit source /usr/local/etc/bash_completion.d/az
    5. 重新启动终端。

    感谢您为那些通过Homebrew安装的人提供路径! - neuronaut

    0
    我通过搜索Zsh的az自动补全技巧而来到了这个页面。根据之前的帖子,以下内容添加了使用Antidote进行插件管理的自动补全功能:

    添加

    Azure/azure-cli kind:clone path:az.completion
    

    将以下内容添加到你的 .zsh_plugins.txt 文件中:
    antidote load 前添加到你的 .zshrc 中。
    autoload -Uz compinit
    compinit
    autoload -U +X bashcompinit
    bashcompinit
    

    0

    对于bash,以下是步骤:

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

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

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


    0
    只要你使用brew安装了az cli,将以下代码添加到~/.zshrc文件中即可解决问题:
    [ -s "$(brew --prefix)/etc/bash_completion.d/az" ] && \. "$(brew --prefix)/etc/bash_completion.d/az"
    

    即使缺少终端,由于命令开头的检查,终端仍然可以正常启动,没有出现错误。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接