josteinb
josteinb

Reputation: 2182

How to enable command completion for Azure CLI in zsh?

I've found hints at there being command completion available for bash[1] for the Azure CLI (az command), but I have not found any indication on how to install/enable that for zsh. Anyone know how to do that, if it is possible? I use oh-my-zsh, if that is relevant.

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

Upvotes: 34

Views: 32724

Answers (8)

Distagon
Distagon

Reputation: 1075

Provided you installed az cli with brew*, this line added in ~/.zshrc does the trick:

[ -s "$(brew --prefix)/etc/bash_completion.d/az" ] && \. "$(brew --prefix)/etc/bash_completion.d/az"

* even if it's missing the terminal starts without errors due to the check at the beginning of the command.

Upvotes: 0

André Srinivasan
André Srinivasan

Reputation: 26

I landed on this page searching for Zsh az completion tips. Based on the earlier posts, the following adds completion using Antidote for plugin management:

Add

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

to your .zsh_plugins.txt file

In your .zshrc, before antidote load, add

autoload -Uz compinit
compinit
autoload -U +X bashcompinit
bashcompinit

Upvotes: 0

Christoph Vollmann
Christoph Vollmann

Reputation: 218

Installed Az CLI on macOS Monterey with Homebrew I've used this commands in my ~/.zshrc file:

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

Autocompletion was deployed to another location.

Upvotes: 11

DmitrySandalov
DmitrySandalov

Reputation: 4109

If your OS has /etc/bash_completion.d/azure-cli, then with oh-my-zsh it is as simple as:

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

Alternatively you have to download it:

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

Upvotes: 11

josteinb
josteinb

Reputation: 2182

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:

    autoload -U +X bashcompinit && bashcompinit
    
  3. Enable the command completions for az:

    source /path/to/az.completion
    

The code snippets from step 2 and 3 can be added to a shell startup file (.zshrc or similar) to make the changes permanent.

Upvotes: 46

Rahul Chaubey
Rahul Chaubey

Reputation: 61

For bash here are the steps:

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 You will see all the options

Upvotes: 0

Gopi
Gopi

Reputation: 21

In MacBook

  1. Download the Bash_completion script
  2. place the az bash completion script in /usr/local/etc/bash_completion.d
  3. Make sure az script with executable permissions .
  4. Update your .zshrc file as below autoload bashcompinit && bashcompinit source /usr/local/etc/bash_completion.d/az
  5. Restart your terminal.

Upvotes: 2

teebszet
teebszet

Reputation: 631

Also, the bash completion file should already be installed on your system.

Look for /etc/bash_completion.d/azure-cli

If the file is there, you can skip step 1 in accepted answer and source that file directly.

Upvotes: 15

Related Questions