Mac .zshrcのカスタマイズ

blur bright business codes

Macのデフォルトシェルは2023年1月時点でzshです.zshは大変強力なシェルですが,デフォルトのまま使うとその性能を活かしきれません.適切にカスタマイズすることで日々の生産性を上げるとともに快適なzshライフを過ごすことが出来ます.本記事ではzshのカスタマイズに用いる.zshrcfileの修正に加え(後日記載),zshの機能を強化するためのプラグインの導入方法の比較,サンプルとしてgit cloneを用いたプラグインの導入方法を紹介します.

目次

.zshrcファイル

後日記載

プラグインの導入方法紹介

導入方法の整理

プラグインの導入方法として代表的なものには以下の3種類があります.

  • brewによるインストール方法
  • 自身でgit cloneする方法
  • oh-my-zshを使う方法

zshプラグイン導入方法の特徴をまとめると以下のようになります.

git cloneがフォルダ管理が可能・プラグイン以外の機能追加がなくて済むため,バランスが良さそうです.

方法フォルダ管理.zshの記載のシンプルさプラグイン以外の機能追加
brew/usr/local/source記述なし
git clone指定可能source記述なし
oh-my-zsh指定可能プラグイン名のみあり

方法1:brewによるインストール方法

たんに/usr/local/share/git cloneするだけのようです.プラグインが増えてきた場合に,指定のディレクトリにまとめておくことは出来ないようです.

brew install zsh-history-substring-search
echo 'source /usr/local/share/zsh-history-substring-search/zsh-history-substring-search.zsh' >> ~/.zshrc

方法2:自身でgit cloneする方法

こちらの方法ではzshのプラグインを~/.zshにまとめておけるメリットがあります.

mkdir ~/.zsh
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
echo 'source ~/.zsh/zsh-syntax-highlighting >> ~/.zshrc

方法3:Oh-my-zshで管理する方法

oh-my-zshはzshの設定を管理するためのフレームワークです.プラグイン管理以外にも様々な機能を提供しているようです.

Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.

https://github.com/ohmyzsh/ohmyzsh

対象のプラグインファイルをoh-my-zshのプラグインディレクトリにクローンします.

git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search

.zshrcにプラグインのディレクトリ名を追記します.

plugins=(
  # other plugins...
  zsh-history-substring-search
)

Source ./zshrcで変更を反映します.

source ~/.zshrc

プラグインの導入

ここではgit cloneしてインストールする方法を説明します.例としてzsh-syntax-highlightingのケースで書いています.

~/.zshrcgit cloneします.

mkdir ~/.zsh
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting

~/.zshrcに以下を追記して,プラグインが読み込まれるようにする.

#=============================
# source zsh-syntax-highlighting
#=============================
if [ -f ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then
  source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi

~/.zshrcの修正後,設定を反映させる.

exec $SHELL

導入するプラグインまとめ

先程のインストール例で紹介したプラグインも含め,使い勝手の良い4つのプラグインの導入方法をまとめておきます.

導入するzshプラグイン

git clone

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-completions.git ~/.zsh/zsh-completions
git clone https://github.com/zsh-users/zsh-history-substring-search.git ~/.zsh/zsh-history-substring-search

~/.zshrc

#=============================
# source zsh-syntax-highlighting
#=============================
if [ -f ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then
  source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi

#=============================
# source zsh-autosuggestions
#=============================
if [ -f ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then
  source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
fi

#=============================
# source zsh-completions
#=============================

# fpathにzsh-completionsの補完定義ファイルパスを追加する
[ -d $HOME/.zsh/zsh-completions/src ] && fpath=($HOME/.zsh/zsh-completions/src $fpath)

# zsh-completions
autoload -Uz compinit
compinit

#=============================
# source zsh-history-substring-search
#=============================
if [ -f ~/.zsh/zsh-history-substring-search/zsh-history-substring-search.zsh ]; then
  source ~/.zsh/zsh-history-substring-search/zsh-history-substring-search.zsh
fi

zsh-completions用の手順として,初回,~/.zcompdumpをリビルドしておきます.

rm -f ~/.zcompdump; compinit

シェルを再起動します.

exec $SHELL -l

プラグインの機能が使えるようになります.

zsh-completionzshの持つ補完機能と何が違うのか?といった点については以下にまとめましたので,是非参考にしてください.

あわせて読みたい
Mac zsh-comletion やhomebrewによって管理される補完スクリプトディレクトリ整理 zsh-completionの役割や,homebrewでインストールしたアプリケーションの補完スクリプトの管理方法,補完スクリプトの保存先ディレクトリの使い分けについて解説します...
よかったらシェアしてね!
目次