deepblue-will’s diary

JS、CSS,Ruby、Railsなど仕事や趣味で試した技術系のことを書いていきます。

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.

ようするにとてもすごいコマンドラインシェルということです。
ちなみにfishFinally 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

私は以下のプラグインをいれてます

config.fish

.zshrc みたいに ~/.config/fish/config.fish に設定を書けば、さらにカスタマイズが可能です。
PATHの設定や自分好みのエイリアスなどここに記述していきます。
注意としては、zshと違って記法が異なる点です。

例えば、環境変数の設定はこんなかんじになります

set -x EDITOR vim

Aliasはこんなかんじ

alias g 'git'

ちなみに私の config.fish はこんなかんじです。

最後に

Zshをゴリゴリにカスタマイズしている方にとっては移行がちょっとめんどいですが、ライトに使ってる方ならばすんなり移行することができます。
ちょっと使ってみて微妙だったら戻せばいいだけですし、この機会にfishを試してみてはいかがでしょうか?