文脈上私がやりたいことはREPLに前処理器を追加することです。具体的にはnix repl
。
その理由は、出力に次の書式設定ステップを追加したいからです。
$ nix repl
Welcome to Nix 2.17.1. Type :? for help.
nix-repl> ↵
nix-repl> { a = 1; b = 2; c = 3; } ↵
{ a = 1; b = 2; c = 3; }
$ nix repl
Welcome to Nix 2.17.1. Type :? for help.
nix-repl> ↵
nix-repl> { a = 1; b = 2; c = 3; } ↵
{
a = 1;
b = 2;
c = 3;
}
REPLの外では、これを使ってこれを行うことができるので、nixfmt < <(echo "{ a = 1; b = 2; c = 3; }")
REPLのすべての出力をリアルタイムで前処理できるなら、条件付きで書式を適用できると思います。
unbuffer
、、、、stdbuf
パイプをさまざまな方法で試しましたが、socat
すべての試行で次のコマンドが実行されるまでSTDINが消えたり、何も表示されなかったり、TABの完了が中断されました。答えが多すぎるので、どんな答えを詳しく調べるべきかわかりません。おそらく私がツールを誤って使用している可能性があり、ツールが正しいツールではない可能性があり、実際にREPLバイナリを変更しないとこれは不可能です。誰もが私を正しい方向に指すことができればとても感謝します。
答え1
nix repl
これを行う実装された方法がないようです。すべてのrepl出力は標準出力に移動します。
nix repl
タグで始まる行間のすべての内容がnix-repl>
渡されるように、stdoutの出力を後処理するプログラムをビルドするか、nixfmt
Nixのreplコード自体にビルドする必要があります。
前者がどれほど深刻であるかを考えると、後者がより良いかもしれません。