
macOS(Zsh)のAWSumeでオートコンプリートが効かない時はcompinitが有効か確認しよう
こんにちは。まるとです。
AWS CLIを使用時に複数プロファイルがある場合、みなさんはどのように切り替えていますか?
自分は今まで都度--profile <プロファイル名>
とオプションをつけていたのですが、AWSume という便利なツールがあると知りました。
プロファイル名のオートコンプリート(以下、補完機能)など色々と目玉機能があるので、セットアップをしたところつまづいたのでメモを記載します。
先に結論
- Zsh環境の場合、compinitが有効化しているか確認しよう
環境
以下の環境で試しました。
- zsh 5.9 (x86_64-apple-darwin23.0)
- AWSume 4.5.4
本編
インストール
AWSume 自体のインストールは濱田さんのブログにて紹介しておりますので、こちらをご確認ください。
補完機能の有効化
Zsh 環境における、AWSume 補完機能のスクリプトは以下のように定義されています。
#compdef awsume
_arguments "*: :($(awsume-autocomplete))"
Zsh における補完は compinit
を利用して補完関数の読み込み、初期化を行う必要があります。
そのため、AWSumeの補完機能を有効化するには、ターミナル起動時にcompinit
を実行する必要があります。
実行には、~/.zshrc
に以下を追記します。
autoload -Uz compinit # エイリアスの展開を防止、Zsh形式で遅延読み込み(互換モードによるエラーを防ぐ)
compinit # compinit の実行、関数の実体をメモリに展開
追記後、ターミナルを再起動して AWSumeのプロファイル名で補完が効くようになります。
まとめ
ツールのインストール時、期待した通りに機能が動かない場合、シェルの設定などを改めて確認することで解決することがあります。
今回細かなところでつまづいてしまったので、もし同じ状況の方がいらっしゃる場合は参考になると嬉しいです。