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

jos*_*inb 4 zsh azure zsh-completion azure-cli

我发现有关Azure CLI(az命令)的bash [1]可用命令完成的提示,但是我没有找到有关如何为zsh安装/启用该命令的任何指示。如果可能的话,有人知道该怎么做吗?如果相关,我使用oh-my-zsh。

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

小智 11

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

autoload -U +X bashcompinit && bashcompinit
source /opt/homebrew/etc/bash_completion.d/az
Run Code Online (Sandbox Code Playgroud)

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


jos*_*inb 8

It is possible to have completions for az in zsh.

  1. Get the completions for bash from the Azure CLI git repo and store this file somewhere your zsh startup script can find it: https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion

  2. Enable bash autocompletions in zsh (if it's not enabled already) [1]:

autoload -U +X bashcompinit && bashcompinit
Run Code Online (Sandbox Code Playgroud)
  1. 为以下命令启用命令完成功能azsource /path/to/az.completion

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

[1]是否可以在zsh中使用Bash制表符完成脚本?

  • 您应该将上面给出的`autoload`和`source`命令都添加到`.zshrc`文件中,自动加载在会话之间不会持久,必须在source命令之前运行。很好的答案,只想澄清一下。 (2认同)

Dmi*_*lov 8

如果您的操作系统有/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
Run Code Online (Sandbox Code Playgroud)

或者你必须下载它:

$ wget https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion \
  -O ~/.oh-my-zsh/custom/az.zsh
Run Code Online (Sandbox Code Playgroud)


tee*_*zet 6

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

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

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