目次
はじめに🤔
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
自身も含まれる。