zshでgitのブランチ名を表示させ、gitの補完をする方法
目次
今回はgitでソースコードを管理するときに便利なTipsを紹介していきます。具体的にはターミナル上でgitのブランチ名を表示させる方法と、ターミナル上でgitのコマンドを保管できるようにする方法を解説します。
環境
ターミナルはiTerm2を使用しています。
gitはHomebrewを使用してインストールしたものを使用しています。
シェルはzshを使用しています。
macOS BigSur version11.0.1です。
この記事を見てできるようになること
ターミナル上でgitのブランチ名を確認することができるようになる。
ターミナル上でgitコマンドを保管できるようになる。
設定ファイルの確認
Homebrewでgitをインストールしている場合には、以下のように2つのgit用補完定義ファイルがインストールされているので、これを利用します。
そもそも、Homebrew経由でgitをインストールしていない場合は下記の記事を参考にして、インストールしてください。
【MacOS】Homebrew経由でGitをインストールする方法 - 独学プログラマ
↓のコマンドを入力して、_git
と git-completion.bash
が表示されていることを確認する。
$ ls -l `brew --prefix`/share/zsh/site-functions/
自分の場合は、↓のように出ました。4行目と6行目に _git
と git-completion.bash
が表示されているのがわかると思います。
$ ls -l `brew --prefix`/share/zsh/site-functions/
total 0
lrwxr-xr-x 1 uirikuto admin 39 10 11 06:46 _brew -> ../../../Homebrew/completions/zsh/_brew
lrwxr-xr-x 1 uirikuto admin 56 11 8 02:44 _git -> ../../../Cellar/git/2.29.2/share/zsh/site-functions/_git
lrwxr-xr-x 1 uirikuto admin 65 12 10 21:18 _nodebrew -> ../../../Cellar/nodebrew/1.0.1/share/zsh/site-functions/_nodebrew
lrwxr-xr-x 1 uirikuto admin 71 11 8 02:44 git-completion.bash -> ../../../Cellar/git/2.29.2/share/zsh/site-functions/git-completion.bash
表示されていない場合は↓のコマンドを入力してください。
$ brew link git
$ brew link --overwrite git
zcompdump のリビルド
設定の追加
次に設定の追加です。実際にファイルに設定を追加しています。
.zshrcファイルを開く
ターミナル上で↓コマンドを入力(vscodeで開く場合)
code ~/.zshrc
ターミナル上で↓コマンドを入力(vimで開く場合)
vi /.zshrc
ファイルの中身を記述
ファイルの中身は僕が実際に書いたファイルを公開します。これをコピペしていただければ、ターミナル上でgitブランチを表示できることと、gitコマンドの補完ができるようになると思います。
# HomebrewのGitを使うパス export PATH=/usr/local/bin/git:$PATH # Git
brew の場合
fpath=($(brew --prefix)/share/zsh/site-functions $fpath)
補完機能有効にする
autoload -U compinit compinit -u
補完候補に色つける
autoload -U colors colors zstyle ':completion:*' list-colors "${LS_COLORS}"
単語の入力途中でもTab補完を有効化
setopt complete_in_word
補完候補をハイライト
zstyle ':completion:*:default' menu select=1
キャッシュの利用による補完の高速化
zstyle ':completion::complete:*' use-cache true
大文字、小文字を区別せず補完する
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
補完リストの表示間隔を狭くする
setopt list_packed
コマンドの打ち間違いを指摘してくれる
setopt correct SPROMPT="correct: $RED%R$DEFAULT -> $GREEN%r$DEFAULT ? [Yes/No/Abort/Edit] => "
#ブランチ名を表示する fpath=(~/.zsh $fpath) if [ -f ${HOME}/.zsh/git-completion.zsh ]; then zstyle ':completion:::git:*' script ~/.zsh/git-completion.zsh fi if [ -f ${HOME}/.zsh/git-prompt.sh ]; then source ${HOME}/.zsh/git-prompt.sh fi GIT_PS1_SHOWDIRTYSTATE=true GIT_PS1_SHOWUNTRACKEDFILES=true GIT_PS1_SHOWSTASHSTATE=true GIT_PS1_SHOWUPSTREAM=auto setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]$ '
まとめ
今回はgitを使用した開発環境を整えるために2つの設定を行いました。具体的には、「ターミナル上でgitのブランチ名を表示させること」と「ターミナル上でgitのコマンドを保管できるようにすること」です。
この2つの設定をすることで快適なgitライフを送ることができるようになると思います。気になった方は是非実践してみてください。