経緯
最近メインのシェルをzshからfishに乗り換えました。
私はdotfilesの管理にdotというdotfilesマネージャを使用していました。しかし、dotはbash/zshにしか対応していないためfishでは使用できませんでした。
そこで、fishでもdotを使えるようにしてみました。
fishはbash/zshと互換性が無いため、1からfishで作成するのは諦めました。
bashなら大抵はどの環境にも入っているはずなので、bash版dotのラッパー関数として作成しています。
実行のたびにdotをインストールしてコマンドを使用する仕様になっていますが、あまり重い処理をしているわけではないですし、暫く使ってみても特に問題が無いようなので公開しました。
前提ソフトウェア
bash版のラッパー関数なのでbashが必要です(大抵の環境にはあると思いますが)。
また、インストールにfisherが必要です。
- bash
- fisher
インストール
以下を実行するだけでインストールできます。
fisher install re3turn/fish-dot
セッティング
実行するためにはdotリポジトリも必要になります。
~/.dot
にdotリポジトリをクローンする場合は以下の様にしてください。
your_username
の部分は各自のアカウント名に変更してください。
git clone https://github.com/ssh0/dot ~/.dot
set -U DOT_REPO https://github.com/your_username/dotfiles.git
set -U DOT_DIR ~/.dotfiles
set -U DOT_SCR ~/.dot
fish-dotでは、dotで必要な環境変数に加えてdotリポジトリのクローン先のディレクトリパスを定義します。
環境変数 | 説明 |
---|---|
DOT_REPO | 自分のdotfilesリポジトリのURL |
DOT_DIR | 自分のdotfilesリポジトリのクローン先ディレクトリパス(フルパス) |
DOT_SCR | dotリポジトリのクローン先ディレクトリパス(フルパス) |
bashやzshの場合、~/.bashrc
や~/.zshrc
に環境変数を設定しますが、fishの場合ユニバーサル変数として一度定義すればよいです。ユニバーサル変数は、明示的に削除しない限り、fishプロセスを終了したりOSを再起動しても永続的に定義されます。
使い方
使い方はbash、zsh版と変わりません。
使い方の詳細は製作者様の記事を参照してください。
タブ補完
dotコマンドのサブコマンド、およびオプションはタブ補完出来るようにしています。
dotと打ったあとにTabを押すとサブコマンドが補完できます。
dotコマンド単体、またはオプションを持つサブコマンドの後ろに-
を打ったあとにTabを押すとオプションを補完できます。