LoginSignup
52
38

More than 5 years have passed since last update.

aws-cli + zshでcomplete:13: command not found: compdefが出る場合の対応

Posted at

AmazonLinux上でyumでインストールできる最新(2016/1/12現在)のzsh(5.0.2)とaws-cli(1.9.11)の組み合わせでログイン時に「complete:13: command not found: compdef」というエラーメッセージが出て気持ち悪いので出ないようにする。

対応内容

$ touch ~/.zshenv
$ echo 'autoload -Uz compinit
compinit' >> ~/.zshenv

原因など

発生場所

/etc/zprofile

/etc/profile.d/aws-cli.sh

/usr/share/zsh/site-functions/aws_zsh_completer.sh
最終行のcomplete関数の呼び出し

/usr/share/zsh/5.0.2/functions/bashcompinit
complete関数の13行目

complete関数呼び出し前にcompdef関数が定義されていないのが問題!

compdefが定義されている場所

/usr/share/zsh/5.0.2/functions/compinit の234行目

実行前にcompinitを読み込む必要がある

/etc/zprofile の読み込み前に行うにはどうしたらいいか

zshの設定ファイルの読み込み順序と使い方Tipsまとめを参考に検討。
読み込まれる順番を考慮するとユーザー権限で行うには~/.zshenvに埋め込むしかないことがわかった。

最後に

本当にこれでいいのかよくわからない
やらなくてもよくなったら消したいけど、やらなくてもよくなるタイミングって確認しづらいなぁ。

52
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
38