Как включить завершение команды для Azure CLI в zsh?

Я обнаружил подсказки о том, что команда bash[1] для CLI Azure доступна для завершения команд (az команда), но я не нашел никаких указаний о том, как установить / включить это для Zsh. Кто-нибудь знает, как это сделать, если это возможно? Я пользуюсь oh-my-zsh, если это уместно.

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

8 ответов

Решение

Можно иметь доработки для az в зш.

  1. Получите дополнения для bash из репозитория git Azure CLI и сохраните этот файл там, где его может найти скрипт запуска zsh: https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion

  2. Включите автозаполнение bash в zsh (если оно еще не включено) [1]: autoload -U +X bashcompinit && bashcompinit

  3. source /path/to/az.completion (вы, вероятно, захотите это также в вашем файле запуска для zsh).

[1] Можно ли использовать скрипт завершения табуляции Bash в zsh?

Установил Az CLI на macOS Monterey с Homebrew. Я использовал эти команды в своем ~/.zshrcфайл:

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

Автозаполнение развернуто в другом месте.

Кроме того, файл завершения bash уже должен быть установлен в вашей системе.

Ищу /etc/bash_completion.d/azure-cli

Если файл есть, вы можете пропустить шаг 1 в принятом ответе и напрямую получить этот файл.

Если в вашей ОС есть /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

В MacBook

  1. Загрузите скрипт Bash_completion
  2. поместите сценарий завершения az bash в /usr/local/etc/bash_completion.d
  3. Убедитесь, что скрипт z имеет разрешения для исполняемого файла.
  4. Обновите файл.zshrc, как показано ниже: автозагрузка bashcompinit && bashcompinit source /usr/local/etc/bash_completion.d/az
  5. Перезагрузите ваш терминал.

Я попал на эту страницу в поисках Zshazсоветы по завершению. Основываясь на более ранних сообщениях, следующее добавляет завершение с использованием Antidote для управления плагинами:

Добавлять

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

на ваш.zsh_plugins.txtфайл

В вашей.zshrc, доantidote load, добавлять

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

Если вы установили az cli с Brew*, эта строка будет добавлена ​​в~/.zshrcделает свое дело:

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

* даже если он отсутствует, терминал запускается без ошибок благодаря проверке в начале команды.

Для bash вот шаги:

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

2: AzureJumpBox $ источник /etc/bash_completion.d/azure-cli

3: AzureJumpBox $ az aks Вы увидите все варианты

Другие вопросы по тегам