fisherによるプラグイン管理

インストール手順

curlを使用してfisherのインストーラスクリプトをダウンロードし、それをsourceコマンドで実行し、最後にfisher自身をインストールします。

curl -fsSL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source
fisher install jorgebucaran/fisher

バージョン確認

fisher --version

オプション

目的コマンド
プラグイン追加fisher install [プラグイン名]
プラグイン削除fisher remove [プラグイン名]
管理プラグイン一覧fisher list

使用しているプラグイン

自前の関数をfisherとは別にgit管理したい

fisherは ~/.config/fish/functions/, ~/.config/fish/conf.d/, ~/.config/fish/completions/ 配下にプラグイン由来のファイルを置く。 fisherでinstallしたりremoveしたりしていくので、これらはfisherの生成物として扱い、gitでは追跡しない。

独自に作った関数やconfig.fishはgit管理していきたい。

このため、別のディレクトリを作成し、自前の関数はそこに置いてgit管理していきたい。

現行の fishConfig では次の方針にする。

対象管理方針
fish_pluginsgit管理する。fisher plugin list のsource of truth
bootstrap.fishgit管理する。fish_plugins からfisher管理ファイルを復元する
config.fishgit管理する
my_functions/git管理する。自前関数とkey bindingを置く
functions/, conf.d/, completions/git管理しない。fisherの生成物

カスタムディレクトリの作成と読み込み

例えば、~/.config/fish/my_functionsというディレクトリを作成する。 次に、config.fishに以下のようなスクリプトを追加して、my_functionsディレクトリ内のすべての.fishファイルを読み込む。

for file in ~/.config/fish/my_functions/*.fish
    source $file
end

これで関数が読み込まれる。

fish_user_key_bindings も自前管理したい場合は functions/ ではなく my_functions/fish_user_key_bindings.fish に置き、config.fish のsource対象に含める。

bootstrap

clean checkout後は次でfisher管理ファイルを復元する。

fish bootstrap.fish