戒め
将来の自分に向けて残します。
文章はちゃんと読みましょうという話です。
ちなみに環境はmacOS,シェルはzsh
です。
AWS CLIコマンド補完設定方法(AWSドキュメントのとおり)
本来はこちらのAWS公式ドキュメントのとおりにコマンド補完の設定を行えば何も問題はありませんでした。
はい、私はなぜかドキュメントどおりに行いませんでした。。。
上のリンクのAWS日本語版は少し古い上に分かりにくいので、英語版を見てください。
私は英語が得意ではないので、該当部分を一文ずつ選択してgoogle翻訳で確認しました。
ドキュメントどおりに~/.zshrc
の末尾に以下のコマンドを入力し、. ~/.zshrc
を実行。
autoload bashcompinit && bashcompinit
そして、上記を実行した後、またもドキュメントどおりに~/.zshrc
の末尾に以下のコマンドを入力し、. ~/.zshrc
を実行。
complete -C '/usr/local/bin/aws_completer' aws
これでコマンド補完ができるようになっています。
二つのコマンドを一度に入力して. ~/.zshrc
を実行しないのは、コマンドが見つからないとエラーが出てコマンド補完が行えないからだと思います。
実際に一度にやってみると、. ~/.zshrc
実行の際にcomplete:13: command not found: compdef
と出ました。その後、コマンド補完機能を試しても補完されなかったので、設定ができていないことが分かります。
なぜドキュメントどおりにしなかったか
日本語訳が若干おかしくなっており意図が理解できなかったことと、ドキュメントどおりに. ~/.zshrc
を2回に分けて実行していないが、一度に済ませても結果は変わらないだろうと勝手に判断したからです。
そのため検索してコマンド補完した解決策がこちら。
autoload -U compinit
compinit
complete -C '/usr/local/bin/aws_completer' aws
こちらでもできましたが、どうせならAWS公式の言うとおりにしようと思い、最初のやり方に直りました。
ドキュメントどおりにやっていたら2〜3分で終わっていたと思うので、原文が英語のものはしっかりと原文を読もうと思います。