Help us understand the problem. What is going on with this article?

fish 3.0がやってきた

More than 1 year has passed since last update.

とうとうこの時がやってきましたね。

fish 3.0がリリースされました!!
すごい。いいぞ。

fish 2.0がリリースされたのが2013年とからしいので、実に5年ぶりのメジャーアップグレードとなります。

fishってなによ

the friendly interactive shell です。
カスタマイズなしで高機能な補完が効くなど、とにかくユーザーに優しく便利なシェルです。

https://fishshell.com

とりあえず試す

以下よりどうぞ。

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.fishbindコマンドを用いてキーバインドを記述する際は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にアップグレード、使ってない人は今すぐ乗り換えると吉です。

お魚美味しい。


  1. 弊大学には素晴らしい実験(演習?)があってですね、fishにwaitコマンドを実装したりしました。事の顛末については http://fish2017.hatenablog.com を見てください。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした