zshからfishにして1年が経ちました
Zshからfishにして1年ぐらい経ったので良かったこととか悪かったことを書きます。
fishとは?
公式サイトの冒頭の一文がこんなかんじ。
fish is a smart and user-friendly command line
shell for macOS, Linux, and the rest of the family.
ようするにとてもすごいコマンドラインシェルということです。
ちなみにfish
は Finally shell
の略らしいです。
fishの良いところ
いっぱいあるのですが、インストールするだけ(設定なし)で以下のことができるのが一番のいいところです。
- 協力な補完機能
- 履歴からはもちろん、manページを解析してオプションとかの候補も出してくれる!
- シンタックスハイライト
- 使えないコマンドは赤く表示される!
- 起動が早い(zshと比べて)
- カラフルできれい
fishの悪いところ
fish使ってて困ったことは以下の1点のみです
- その他のShellと構文が違うので、スクリプトのコピペでコマンドを実行できないことがある
fishの使い方
ここまで、良いところがはっきりしてきたら使いたくなりますよね?
ということでここからは具体的なインストールから設定までを紹介したいと思います!
fishのインストール
brewでいれます。これだけで使えるようになります!
$ brew install fish
fishのカスタマイズ
入れるだけでもそこそこ使えますが、やはりカスタマイズもしたくなるもの。
Fishではプラグインいれたり、設定ファイルを書くことで自分好みにカスタマイズすることができます。
fisherman
私はfishのプラグインマネージャーにfishermanを使っているのでそれを紹介したいと思います。
まずインストール
$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
これで fisher
コマンドを使えるようになるので、プラグインをいれていきます。プラグインのいれ方はこんなかんじ。
$ fisher z
私は以下のプラグインをいれてます
- oh-my-fish/theme-bobthefish
- いい感じなプロンプトになるテーマ
- fisherman/docker-completion
- dockerコメンドの補完ができるようになる
- fisherman/fzf
- ファイル検索や実行コマンド検索ができるようになる。
- fzf のインストールが別途必要
- decors/fish-ghq
- ghq の補完などをやってくれる
- fisherman/rbenv
- これいれておけばrbenvの設定しなくてOK
- fisherman/spin
- 時間がかかる処理の時にスピンを表示してくれる
- fisherman/z
- 指定のフォルダ一発で移動できる
z
コマンドがつかえるようになる
- 指定のフォルダ一発で移動できる
config.fish
.zshrc
みたいに ~/.config/fish/config.fish
に設定を書けば、さらにカスタマイズが可能です。
PATHの設定や自分好みのエイリアスなどここに記述していきます。
注意としては、zshと違って記法が異なる点です。
例えば、環境変数の設定はこんなかんじになります
set -x EDITOR vim
Aliasはこんなかんじ
alias g 'git'
ちなみに私の config.fish
はこんなかんじです。
最後に
Zshをゴリゴリにカスタマイズしている方にとっては移行がちょっとめんどいですが、ライトに使ってる方ならばすんなり移行することができます。
ちょっと使ってみて微妙だったら戻せばいいだけですし、この機会にfishを試してみてはいかがでしょうか?