安全2

趣味のコンピュータ

fishの自作関数の話(peco, fishだ〜いすき)

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

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

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

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

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

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

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

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

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

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

fish.rubikitch.com