「シェルなんてなんでもいい」と思ってた時期が私にもあった。fishに出会うまでは。bashもzshも使ってきたけど、fishに乗り換えて1年——もう戻れない。
最初は「POSIX互換じゃないし…」と尻込みしてた。でも実際使ってみると、オートサジェストとシンタックスハイライトの組み合わせが強力すぎて、互換性のなさを補って余りある体験だった。Ctrl+Rを連打しながら履歴を探す日々とはおさらばだ。
fishがすごいところ
オートサジェスト
履歴ベースのグレーアウト補完。git まで打てば直前のコマンドがうっすら見える。Ctrl+Fで確定。
シンタックスハイライト
打ってる途中でコマンドが存在するかどうか色でわかる。赤くなったら打ち間違い。これだけでストレスが激減。
設定がGUI
fish_config を打つとブラウザが開いて、色やプロンプトをポチポチ選べる。
注意点
- POSIX互換ではないので bash script.sh はそのまま実行できない
- PATHの書き方が違う(fish_add_path を使う)
- プラグインマネージャーはFisherがおすすめ
# Fisherのインストール
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source
# 便利プラグイン
fisher install jorgebucaran/nvm.fish
fisher install PatrickF1/fzf.fish
まとめ
bashに不満がない人も、一度試すとちょっとした不便さに気づく。モダンシェルの体験はプログラミングのテンションすら上げてくれる。