zshにgitとdockerの入力補完を実装する

gitとdockerは毎日のように使うので入力補完ができると作業効率が良いです。

というわけでzshにgitとdockerの入力補完を実装しました。

前準備

補完スクリプトの保存先ディレクトリを作成します。

# ディレクトリの作成
mkdir -p ~/.zsh/completion

スクリプトのダウンロード

# gitの補完用スクリプトのダウンロード
curl -o ~/.zsh/completion/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
curl -o ~/.zsh/completion/_git https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh

# dockerの補完用スクリプトのダウンロード
curl -o ~/.zsh/completion/_docker https://raw.githubusercontent.com/docker/cli/master/contrib/completion/zsh/_docker

.zshrcの設定

.zshrcに下記を追記します。これで先のスクリプトがターミナル起動時に読み込まれます。

zstyle ':completion:*:*:git:*' script ~/.zsh/completion/git-completion.bash

# FPATHに`~/.zsh/completion`を追加
fpath=(~/.zsh/completion $fpath)

# シェル関数`compinit`の自動読み込み
autoload -Uz compinit && compinit -i

autoload はファイルシステム上にある関数定義を自動で読み込むための関数。 -U は関数の内部でaliasを展開しないようにするオプション。

FPATHautoload の探索先となるディレクトリです。

まとめ

gitとdockerの入力補完が効くようになりました。gitとdockerは毎日のように使うので、これで作業効率が良くなるのではないかと思います。