たぶん多くの人にとっては常識なんだろうけど、自分は迂闊にも知らずに来たので、そうした人が一人でも減るとよいなと思ってメモ。
zsh-completions
macのデフォルトであるzshで、サブコマンドの自動補完(候補表示)を行ってくれるもの。
いちいち--help
みたいなことをしなくて済むのでだいぶ作業が効率化される。
個人的には、近視の人がメガネに出会ったぐらいのインパクトがある気がする。
OSコマンドもさることながら、kubectlやeksctlなどにも適用できることが大きい。
例えば、kubectl
(半角スペースあり)まで入力してTabを押下すると(あるいはkubectl
まで入力してTabを2回押下でもOK)、実行可能なコマンド一覧を表示してくれる。表示候補が多すぎる場合は、kubectl e
まで入力してTabを押下することで、eで始まるサブコマンドのみを表示させることができる。
インストール方法
Homebrewでいける。
brew install zsh-completions
インストール後に実行すべきコマンドや.zshrc
への追記事項については、以下のブログに詳しいので参照されない。
kubectlへの適用方法
以下を実行。
kubectl completion zsh > "${fpath[1]}/_kubectl"
eksctlへの適用方法
以下を実行。
mkdir -p ~/.zsh/completion/ ; eksctl completion zsh > ~/.zsh/completion/_eksctl
.zshrc
に以下を追記。
fpath=($fpath ~/.zsh/completion)
最後に設定を再読込。
. ~/.zshrc
aws_completer
AWS CLIにも同様の機能がある。
インストール方法
AWS CLIと一緒にインストールされている。
ただし、パスがインストール方法によって違っていて、Homebrewでインストール(brew install awscli
)した自分の場合は以下にあった。
> which aws_completer
/opt/homebrew/bin/aws_completer
上記の確認後、.zshrc
に以下を追加(パスは自身の環境に併せて変更)。
export PATH=/opt/homebrew/bin/:$PATH
autoload bashcompinit && bashcompinit
autoload -Uz compinit && compinit
complete -C '/opt/homebrew/bin/aws_completer' aws
最後に設定を再読込。
. ~/.zshrc
まとめ
ターミナル生活が楽になる小ネタでした。
もっと早く知っておくべきだった・・・。
おまけ
zsh-autosuggestionsというのもある(こちらは以前から使っていた)。
過去に入力したコマンド履歴から自動補完してくれるもので、長いコマンドの再実行や、typo回避などに有益なのでこちらもお勧めしたい。
また、少し毛色は違うがpower10kも是非。zshにテーマを追加してくれるもので、特にgit使って作業する際、ブランチとの差分を視覚的に表示してくれるなど大変便利。