あなたは fish shell を使っていますか? https://fishshell.com/

自分は数年fish shellを使っていて、当初は

  • bashより良さそう
  • zshほど頑張ってカスタマイズしなくても初期設定でかなり使える

くらいの印象で、導入した時点でもtab補完の強力さぐらいしか魅力を感じていなかったのですが、ここ最近fishで関数を自作することが多い。

手作業すれば必ず人間はミスる、しょっちゅうやる作業はミスらないよう機械に任せてお願いしましょう、というのが信条なのでこういうのは楽しいなと思う。

たとえば、普段Railsのプロジェクトでrakeタスクを実行するときあのタスクなんだったっけ?と思うとき、そういう場合 bundle exec rake -T を叩く -> 表示されたタスク一覧から任意のタスクをコピペして実行、というような方法を取っていたのですが、fishで関数を作ってpecoでインタラクティブに選択できるようにするとちょっと便利。 そもそも rake -T に時間かかるので待ち時間はそれなりに発生するが便利。 [f:id:nkzsdy:20190227213103g:plain] [https://gist.github.com/9db8a086c051d72622260b90fa3ee2d7:embed#Rakeタスクをインタラクティブに選択できるfish function]

Rakeタスクをインタラクティブに選択できるfish function

あと、似たようなもので、gitで特定のブランチにチェックアウトしたいときにもpecoを使った処理を関数化している。 ちょうどいいgitリポジトリが見つからなかったのでいいキャプチャが撮れなかったが、結構な数ブランチがある場合便利です。 [f:id:nkzsdy:20190227212608g:plain]

[https://gist.github.com/0f5dfe92dd5cdfeaf3e3fa63a520c4b2:embed#gitのブランチ一覧からインタラクティブに選択してcheckoutする]

gitのブランチ一覧からインタラクティブに選択してcheckoutする

みんなで便利な関数および社会を作っていきましょう。 fish の日本語のリファレンスはるびきちさんによる以下のサイトが便利です。世の中便利なものが多くて便利ですね。自分も誰かの関数になりたい。

http://fish.rubikitch.com/