- Fish は macOS、Linux、およびその他の Unix 系オペレーティングシステム向けのユーザーフレンドリーなコマンドラインシェル
- 4.0.0 以降、Fish のコアコードが C++ から Rust に移植
- これにより依存関係とビルド方法に大きな変更が生じるが、ユーザーへの直接的な影響はない
- 互換性のない変更:
bind コマンドに新しいキー表記法を導入
ctrl-c が clear-commandline を呼び出すようになり、以前の動作は cancel-commandline で利用可能
random 関数のシード値に応じた結果が以前のバージョンと異なる場合がある
- コマンド位置にある変数は、今後はサブコマンドキーワードに展開できない
functions --handlers は、定義された順序でハンドラーを一覧表示するようになった
qmark-noglob 機能がデフォルトで有効化
改善点と修正
- キーボードプロトコル: XTerm の
modifyOtherKeys と kitty のキーボードプロトコルをサポート
- 自己完結型インストールバイナリ: fish を自己インストール可能なバイナリとしてビルド可能
- コマンド履歴:
fish_should_add_to_history 関数で履歴に追加するコマンドを決定可能
- 元に戻す機能: コマンド実行後も履歴が保持される
- 略語制限: 特定のコマンドでのみ略語を展開可能
非推奨および削除された機能
commandline --tokenize は commandline --tokens-expanded に置き換え
bind -k 構文によるキー名指定は非推奨
- ペーストモードを削除
スクリプト改善
- 新しい履歴コマンド:
history append でコマンドを実行せずに履歴へ追加可能
- 新しいリダイレクト:
1件のコメント
Hacker Newsの意見
clear-commandlineは興味深い機能cancel-commandline設定を確認する予定