2 ポイント 投稿者 GN⁺ 2025-02-28 | 1件のコメント | WhatsAppで共有
  • Fish は macOS、Linux、およびその他の Unix 系オペレーティングシステム向けのユーザーフレンドリーなコマンドラインシェル
  • 4.0.0 以降、Fish のコアコードが C++ から Rust に移植
    • これにより依存関係とビルド方法に大きな変更が生じるが、ユーザーへの直接的な影響はない
  • 互換性のない変更:
    • bind コマンドに新しいキー表記法を導入
    • ctrl-cclear-commandline を呼び出すようになり、以前の動作は cancel-commandline で利用可能
    • random 関数のシード値に応じた結果が以前のバージョンと異なる場合がある
    • コマンド位置にある変数は、今後はサブコマンドキーワードに展開できない
    • functions --handlers は、定義された順序でハンドラーを一覧表示するようになった
    • qmark-noglob 機能がデフォルトで有効化

改善点と修正

  • キーボードプロトコル: XTerm の modifyOtherKeys と kitty のキーボードプロトコルをサポート
  • 自己完結型インストールバイナリ: fish を自己インストール可能なバイナリとしてビルド可能
  • コマンド履歴: fish_should_add_to_history 関数で履歴に追加するコマンドを決定可能
  • 元に戻す機能: コマンド実行後も履歴が保持される
  • 略語制限: 特定のコマンドでのみ略語を展開可能

非推奨および削除された機能

  • commandline --tokenizecommandline --tokens-expanded に置き換え
  • bind -k 構文によるキー名指定は非推奨
  • ペーストモードを削除

スクリプト改善

  • 新しい履歴コマンド: history append でコマンドを実行せずに履歴へ追加可能
  • 新しいリダイレクト:

1件のコメント

 
GN⁺ 2025-02-28
Hacker Newsの意見
  • Fish 4.0で最も興味深い点は、今やRustで書かれていること
    • テストして、目に見える違いがあるか確認してみたい
  • ユーザーへの直接的な影響はないとのこと
    • Fishのコアは書き直されたが、ほぼすべてが同じように動作する
  • Fishシェルに切り替えた人たちにとって、最大の欠点は何なのか気になる
    • 自分の環境で慣れたあと、会社のサーバー環境でBashやZshを使わなければならない場合
    • BashからFishへ移行するなら、Nushellへの移行も検討する価値がある
  • Zshユーザーとして、Fishを試してみたい
    • Zshにプラグインを追加して、Fishのように動作させている
  • Homebrewを使っている場合、まだFishは提供されていない
    • そのうち追加される予定
  • Fishを何年も使っているが、主な理由は優れた自動補完機能
    • シンプルなテーマ/プロンプトシステムやoh-my-fishのプラグイン管理も良いが、副次的なもの
  • Bashと互換性のないFishのその他の機能は不便
    • 特に環境変数の管理が問題
    • 原則としてはBashより設計が優れているが、それほど大きな違いではなく、使う頻度も低いので毎回学び直す必要がある
    • ドキュメントから設定手順をコピー&ペーストするときに不便
  • Rustへの移行に向けた開発上の調整が、どのように行われたのか気になる
    • 単一のPR(#9512)しか見当たらない
  • Rustに書き直したあと、バイナリがどれくらい大きくなったのか気になる
  • clear-commandlineは興味深い機能
    • WindowsとmacOSの間で一貫性を保つのが難しい
    • Karabinerをうまく使いこなせない
    • デフォルトのcancel-commandline設定を確認する予定