とうとうこの時がやってきましたね。
fish 3.0がリリースされました!!
すごい。いいぞ。
fish 2.0がリリースされたのが2013年とからしいので、実に5年ぶりのメジャーアップグレードとなります。
fishってなによ
the friendly interactive shell です。
カスタマイズなしで高機能な補完が効くなど、とにかくユーザーに優しく便利なシェルです。
とりあえず試す
以下よりどうぞ。
GitHub:
https://github.com/fish-shell/fish-shell
Ubuntuであれば以下のコマンドでインストールできます。
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish
注目の変更点など
wait
コマンドの追加
今まではバックグラウンドジョブを待つwait
コマンドが実装されておらず、
fish-shellによる並行処理の方法
のように面倒な方法を使う必要がありました。
fish 3.0ならばもうその必要はありません。
なぜならば、すでに我々が実装したからです。1
&&
と||
が使える
バージョン2.xでは
$ cmd1 && cmd2
のような書き方ができず、
$ cmd1; and cmd2
と書くことを強いられてきました。
これが嫌でfishを使うのをやめてしまった、という人も多いのではないでしょうか。
しかし、3.0ではとうとう両方の書き方に対応したようです。すばらしい。
math
コマンドの改善
fishにはmath
コマンドが存在し、
$ math "2*3-1"
5
などとしてコマンドラインで計算を行うことができました。
元々math
コマンドはbc
コマンドのラッパーとして機能していましたが、3.0からはビルトインコマンドに変更になりました。
それに伴ってデフォルトで浮動小数点演算が有効になり、従来では
$ math "3.14/2"
1
となってしまっていたところを
$ math "3.14/2"
1.57
のように、自然な形で演算してくれるようになりました。個人的には結構嬉しい。
キーバインドの設定
従来はconfig.fish
にbind
コマンドを用いてキーバインドを記述する際はfish_user_key_bindings
関数内でbind
を呼ばなければならないという制限がありましたが、この制限は撤廃され、config.fish
に直接bind
を記述して良いことになりました。
従来通りfish_user_key_binding
は実行されるため、設定の変更は必要ありません。
おわりに
他にも多くの変更点があるので、気になる人はchangelogを覗いてみると良いと思います。
https://github.com/fish-shell/fish-shell/blob/master/CHANGELOG.md
総じて、かなりイケてるシェルに仕上がっているという印象です。
fishを既に使っている人は3.0にアップグレード、使ってない人は今すぐ乗り換えると吉です。
お魚美味しい。
-
弊大学には素晴らしい実験(演習?)があってですね、fishにwaitコマンドを実装したりしました。事の顛末については http://fish2017.hatenablog.com を見てください。 ↩