普段ターミナルで使っている zsh をもっと便利したいので私は高速な zplugin などがありますが zplug を使ってます。

注意: 私の使い方は zplug 開発側の想定外の使用方法です。あくまでも自己責任で使ってください!

tl;dr

: 'zplug' && () {
	export ZPLUG_REPOS="$HOME/.zplug/src"
	export ZPLUG_HOME="$ZPLUG_REPOS/zplug/zplug"
	export ZPLUG_BIN="$HOME/.zplug/bin"
	export PATH=$ZPLUG_BIN:$PATH
	export ZPLUG_CACHE_DIR="$HOME/.zplug/cache"
	export ZPLUG_LOADFILE="~/.config/zsh/packages.zsh"

	source $ZPLUG_HOME/init.zsh

	if [[ $ZPLUG_LOADFILE -nt $ZPLUG_CACHE_DIR/interface || ! -f $ZPLUG_CACHE_DIR/interface ]]; then
		zplug check || zplug install
	fi

	if __zplug::core::cache::diff; then
		__zplug::core::load::from_cache
	else
		zplug load
	fi
}

以前記事にした 自動ダウンロードの高速化 やキャッシュの読み込みを速く行われるように 内部で使われている関数 を使用してます。

プラグインをどんどん設定していこう!

$ZPLUG_LOADFILE で指定したファイルにどんどんプラグインを追加していくだけです!

zplug "zplug/zplug"

zplug "zsh-users/zsh-completions"

zplug "zdharma/fast-syntax-highlighting"

どうして開発側の想定外の使い方をしてるのか

読み飛ばしていただいてもOKです

zplug 開発側が想定してる使用方法の場合 zplug の自動更新を設定するために zplug --self-manage コマンドを実行すると思います。 ですがこの方法では $ZPLUG_ROOT$ZPLUG_HOME という 2種類の zplug を zplug --self-manage コマンドでシンボリックリンクを作成するというものでした。 この構造ではわかりにくいと感じ issue を立てたり P-R を作成し次のようなディレクトリ構造が成り立つようにしました

~/.zplug
├── bin             $ZPLUG_BIN
├── cache           $ZPLUG_CACHE_DIR
└── src             $ZPLUG_REPOS
    └── zplug
        └── zplug   $ZPLUG_HOME

これにより zplug をインストールした際に管理がしやすくなりました!

まとめ

あくまでも私が管理がやりやすいようにやってますので公式が行ってるようにやってもらったほうがいいと思います。

宣伝: 39e/zplug では高速化を行ったりPATHが追加されない問題を修正など自分なりに解決してるので是非試してみてください