目次
はじめに🤔
dotfiles を運用するさいに fisher プラグインの管理をどうするかで悩んだ。
最初はそのまま fish ディレクトリまるごと管理してたけど、プラグインの関数ファイル全部込みになるのでやめたかった。
| App | Version |
|---|---|
|
fish |
3.0.2 |
|
fisher |
4.1.0 |
fisherプラグインの管理🎣
fisher は fish_plugins ファイルにインストール済みのプラグイン[1]を書き込む。
そして fisher update コマンド実行時に、このファイルを参照してインストールやアンインストールが行われる。
したがって dotfiles における fisher プラグイン管理は fish_plugins ファイルだけを管理しておけばいい。
fish/functions ディレクトリは管理外とする
fish/functions ディレクトリには fisher プラグインの本体である関数が大量に格納されるため、dotfiles には含めずに管理外とする。
自作関数は別ディレクトリに配置しておき、ファイルごとに fish/functions/* ファイルへシンボリックリンクを張るようにする。
dotfiles の install スクリプトの書き方
dotfiles をインストールするスクリプトでは、下記のように GitHub から fisher.fish をダウンロードして実行するようにすればいい。
fisher.fishを取得してアップデート実行
fish -c "curl -sL git.io/fisher | source && fisher update"
上記コマンドを実行するのであれば、fisher 自体も dotfiles に含める必要がない。 |
余談🐟
fishディレクトリにシンボリックリンクを張る理由
なぜかというと、fish はユニバーサル変数を fish_variables ファイルに出力する。
このせいでシンボリックリンクが実ファイルに上書きされてしまうため。
1.
fisher 自身も含まれる。