はじめに

最近はpreztoを使っていたんだけど、Zshプラグインをよりシンプルに管理をしたくてZshプラグインマネージャーを導入してみた。

Zshプラグインマネージャー

Zshプラグインマネージャーといっても、たくさん選択肢がある。

antigenが一番人気で、リポジトリもzsh-users配下にあるので安心感もありそう。
zgenはantigenをより軽くした感じで、手軽感がある印象。
zplugは一番後発らしく、とてもモダンな印象で多機能。
最初zplugにしようかなと思ったけど、出来ることが多い反面覚えることも多そうだったので、シンプルで軽そうなzgenを使うことにした。

zgen

インストール

git-cloneする。

$ git clone https://github.com/tarjoilija/zgen.git "${HOME}/.zgen"

zgen.zshを読み込むようにzshrcを用意する。

# load zgen
source "$HOME/.zgen/zgen.zsh"

# if the init scipt doesn't exist
if ! zgen saved; then

  # specify plugins here
  zgen oh-my-zsh

  # generate the init script from plugins above
  zgen save
fi

あとは、specify plugins hereの下にプラグインを羅列していけばOK。 シンプルで分りやすくて良いと思う。

自分の場合は、既に色々書いてある.zshrcがあったので、別途.zshrc.zgenを用意してそれを読み込むようにした。 具体的にはこんな感じ。

$HOME/.zshrc

# include .zshrc.zgen
[[ -f $HOME/.zshrc.zgen ]] && source $HOME/.zshrc.zgen

$HOME/.zshrc.zgen

# zgen
if [[ -f "$HOME/.zgen/zgen.zsh" ]]; then
  # load zgen
  source "$HOME/.zgen/zgen.zsh"

  # if the init scipt doesn't exist
  if ! zgen saved; then

    # specify plugins here
    zgen oh-my-zsh
    zgen oh-my-zsh themes/clean

    zgen load zsh-users/zsh-completions
    zgen load zsh-users/zsh-history-substring-search
    zgen load zsh-users/zsh-syntax-highlighting

    # generate the init script from plugins above
    zgen save
  fi
fi

プラグインは適当に必要そうなものをとりあえず追加してみた。 あとはsource ~/.zshrcするなりすれば、各プラグインのインストールとか自動的に始まる。

アンインストール

インストール時にgit-cloneした$HOME/.zgenディレクトリを削除するだけでOK。 このお手軽感も気に入っている。

おわりに

oh-my-zshやpreztoは確かに便利なんだけど、時間とともに構造とかお作法とか忘れてしまうので、変更するのがとても面倒になってしまっていた。

なので、

  • zgen load hogehogeって書いとけば、プラグインを追加できる
  • よく分からなかったら、$HOME/.zgenディレクトリを削除してやり直せば良い

程度の認識で管理できそうなzgenへの移行には概ね満足している。