😺

MacでGitのタブ補完を有効にする方法

に公開

概要

MacでGitのタブ補完を有効にする方法を備忘録として共有します。

実行環境

  • Apple M1 Pro
  • zsh

手順

1. Homebrew がインストールされているか確認

brew --version

バージョンが表示されればOK。
インストールされていなければ公式サイトからインストールしてください。

2. zsh-completionsをインストール

brew install zsh-completions

/opt/homebrew/share/zsh-completionsにインストールされます。

3. .zshrc に設定を追加

vi ~/.zshrc

.zshrcを開きます。

# zsh-completionsをfpathに追加
fpath=("/opt/homebrew/share/zsh-completions" $fpath)

# compinit を読み込む
autoload -Uz compinit
compinit

ファイルの末尾に上記を追加します。
autoload :遅延ロードできる関数として登録(zshの関数をコマンドで呼べるようにするコマンド)
compinit :Tab補完機能自体を有効化する関数です(fpathの中から補完機能を読み込みます)
-U :関数を読み込むときに設定済のエイリアスを無視する設定です
-z :Zsh用の関数であることを明示(儀礼的)

4. 設定を反映

source ~/.zshrc

これで完了です。

確認を求められたとき

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

zsh compinit: 安全でないディレクトリが見つかりました。一覧表示するには compaudit を実行してください。
安全でないディレクトリを無視して続行しますか [y] それとも compinit を中止しますか [n]?

zsh-completionsをインストールしたディレクトリのパーミッションが過剰だとこの確認が表示されるようです。
無視して続行しても良いですが、chmodで権限変更をしておくのが良いと思います。

sudo chmod -R go-w /opt/homebrew/share

-R :再帰的にそのフォルダ配下のディレクトリやファイルの権限も変更します
go-w :g = groupo = othersから-w = 書き込み権限を削除します


ちなみにcompauditコマンドでどのディレクトリが安全でないかを見ることができます。

compaudit

There are insecure directories:
/opt/homebrew/share

Discussion