LoginSignup
12
6

More than 3 years have passed since last update.

fishでdotfilesマネージャdotを使う

Last updated at Posted at 2018-03-26

経緯

最近メインのシェルを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を押すとオプションを補完できます。

fish-dot2.gif

12
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
6