Edited at

zplug のマイベストプラクティス

https://blog.x39.dev/tech/zplug/ に記事を移しました。最新の更新はブログの方を見てください!!


普段ターミナルで使っている 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が追加されない問題を修正など自分なりに解決してるので是非試してみてください