お世話になっております。
しゃまとんです。

皆さんcompletion使ってますでしょうか。
gitやdockerを使うときにcompletionを設定しているとコマンドを補完してくれて作業が捗りますよね。

大体gitやdockerをインストールした時に設定したりするのですが、
いつもcompletion毎に調べたりしてめんどくさいなぁと思ったので個人的な趣味でまとめました。
bashかzshで分けておきました。

  • git, dockerが入ってる前提です
  • 各OSでzshのディレクトリ構成が違うかもしれません

■ Bash

最後に現在のシェルに反映します。

■ Zsh

次にzshrcにfpathを追記します。
autoloadよりも前に記載しておきます。

#[.zshrc]
fpath=(${HOME}/.zsh_completions $fpath)

autoload -Uz compinit -i
compinit -u

最後に反映させます

source ~/.zshrc

試しにやってみると…

このように補完してくれるようになりました。
どっちも便利なので是非活用しましょう!
以上です。

■ appendix
かんたんに検証したい方向けにCentOS on Docker用コマンド

# コンテナ起動
docker run --name=tmp -it centos bash

# コンテナにgit/docker周りをインストール
echo "include_only=.jp" >> /etc/yum/pluginconf.d/fastestmirror.conf && \
yum -y update && \
yum -y install git docker zsh && \
curl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
chmod +x /usr/local/bin/docker-machine && \
curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose

# いろいろ試す...

# 後始末
docker rm tmp
docker rmi centos:latest