sheldon
#zsh #Bash #Git
概要
Zsh/Bash向けプラグインマネージャー
Rustで書かれている
インストール
Homebrew: $ brew install sheldon
GitHub Releasesにビルド済みバイナリーが置いてあります:
バージョンの確認
code:shell
$ sheldon version
初期セットアップ
以下のコマンドを実行すると、XDG_CONFIG_HOMEにsheldon/plugins.tomlが作成されます
code:shell
# Zsh向けに (Bashの場合は--shell bashを指定します)
$ sheldon init --shell zsh
その後、.zshrcまたは.bashrcに以下を記述します
code:sh
eval "$(sheldon source)"
プラグインの管理
sheldonの設定やプラグインはXDG_CONFIG_HOMEのsheldon/plugins.tomlで管理されます
基本的な使い方
sheldon/plugins.tomlを編集します
code:sheldon/plugins.toml
# 例) forgitの設定
plugins.forgit
github = "wfxr/forgit" # 指定されたGitHubリポジトリからプラグインを読み込みます
tag = "24.05.0" # 必要に応じてGitタグなどを指定できます (特定のコミットを指定したい場合はrevオプション、ブランチを指定したい場合はbranchオプションで指定可能です)
use = "forgit.plugin.zsh" # リポジトリ内で読み込みたいファイルを指定します
またはsheldon addコマンドによってsheldon/plugins.tomlを更新することも可能です
code:shell
$ sheldon add forgit --github wfxr/forgit --tag 24.05.0 --use 'forgit.plugin.zsh'
その後、以下のコマンドを実行するとプラグインがインストールされます
code:shell
$ sheldon lock
~/.local/share/sheldon/plugins.lockにロックファイルが作成されます
プラグインの削除
code:shell
# sheldon/plugins.tomlから指定されたプラグインを削除します
$ sheldon remove forgit
# ロックファイルの更新とプラグインの削除を行います
$ sheldon lock
その他
テンプレート
各プラグインごとに、プラグインの読み込みに関する振る舞いを設定するための機能です
テンプレートエンジンとしてuponが使用されているようです (src/util/mod.rs)
ユーザーがカスタムのテンプレートを定義することもできます
フィルターなどについてはsrc/lock/script.rsあたりで定義されています
プラグインを遅延読み込みしたい
sheldonを使って特定のプラグインを遅延読み込みする
リンク
zinitが不安なのでsheldonへ移行したらzshの起動が50msと更に速くなった - Engineering blog at ktrysmt
究極のzshプラグイン読み込み高速化: プラグインマネージャーの限界を越えろ【起動時間14.6ms】 - zsh-deferとの併用について
高速で設定しやすいZsh/BashプラグインマネージャーSheldonの紹介