kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

github-cliの補完が効かない

ちょっと前にgithub-cliをインストールしてたのだけど、気がつくと補完が効かない・・・

$ gh cre-bash: _get_comp_words_by_ref: command not found

補完は.bash_profileに以下のように指定していました。

eval "$(gh completion -s bash)"

なんかバグってんのかな?と思いつつ、github-cliのドキュメントを見てみた。

When installing GitHub CLI through a package manager, however, it's possible that no additional shell configuration is necessary to gain completion support. For Homebrew, see https://docs.brew.sh/Shell-Completion

何もしなくていいの???ということで、homebrewのドキュメントを見てみると、homebrewの補完はこういうのを.bash_profileなり.bashrcに追加すればよいらしい。

if type brew &>/dev/null; then
  HOMEBREW_PREFIX="$(brew --prefix)"
  if [[ -r "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]]; then
    source "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
  else
    for COMPLETION in "${HOMEBREW_PREFIX}/etc/bash_completion.d/"*; do
      [[ -r "$COMPLETION" ]] && source "$COMPLETION"
    done
  fi
fi

で、${HOMEBREW_PREFIX}/etc/bash_completion.d/ をのぞいてみたら・・・

$ ls ${HOMEBREW_PREFIX}/etc/bash_completion.d/
aws_bash_completer  gibo-completion.bash    hugo.sh
brew            gio         m
eksctl          git-completion.bash minikube
gapplication        git-prompt.sh       nodebrew
gdbus           gresource       npm
gh          gsettings       vagrant

おお、パッケージ追加するとここに入れられて、勝手に読んでくれるのかー!!!

homebrew長く使ってるけど全然知らなかったよ・・・○iitaあたりの手順を鵜呑みにして設定してはいけないってことね・・・

ただし、パッケージ側でやってない場合は手動が必要な場合もあるみたい。