5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-03-20

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

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?