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
のケースで書いています.
~/.zshrc
にgit 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-completion
がzsh
の持つ補完機能と何が違うのか?といった点については以下にまとめましたので,是非参考にしてください.