問題タブ [fish]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1057 参照

fish - 魚の殻の可変膨張の予想外の欠如

これはバージョン 2.1.0 です

最初の「エコー」が何も出力しないのはなぜですか? 私は「バー」を見ることを期待していたでしょう

0 投票する
2 に答える
2803 参照

linux - Bash (または他のシェル): すべてのコマンドを関数/スクリプトでラップします。

編集:この質問はもともとbash固有のものでした。私はまだbashソリューションが欲しいのですが、別のシェルでこれを行う良い方法があれば、それも知っておくと便利です!

さて、問題のトップレベルの説明です。たとえば$cat foo | sort -n | less、ユーザーが入力すると、これが傍受されてに変換されるように、bash にフックを追加できるようにしたいと考えていますwrapper 'cat foo | sort -n | less'。各コマンドの前後にコマンドを実行する方法 (DEBUG トラップまたは PROMPT_COMMAND などを使用) を見てきましたが、各コマンドを傍受して別のプロセスで処理できるようにする方法については何もありません。これを行う方法はありますか?

人々がそれにアプローチする方法について他の提案を持っている場合に備えて、私がこれをやりたい理由の説明について:

スクリプトなどのツール端末で行うすべてのことをログに記録できます (ある程度、bash の履歴と同様)。ただし、スクリプトは入力と出力を 1 つの大きな文字列に混ぜ合わせて、画面を引き継ぐ vi などのアプリケーションと混同し、履歴は入力された生のコマンドのみを提供し、どちらも機能しません。同時に複数の端末にコマンドを入力している場合。私がやりたいのは、より豊富な情報をキャプチャすることです。例として、コマンド、実行時間、完了時間、終了ステータス、stdin と stdout の最初の数行です。また、これを、複数の端末をうまく多重化できるリスニングデーモンに送信することもお勧めします。

これの動機は、事後の手順のような探索的データ分析を理解しようとすることにあります。このようなより豊富な情報があれば、何が起こったのかについて適切なレポートを生成し、1 つのコマンドの複数の呼び出しを 1 つにまとめて、最初のいくつかがゼロ以外の終了を返し、ファイルに触れたすべてのものを検索してファイルがどこから来たのかを尋ねることが可能になります。などなど

0 投票する
1 に答える
75 参照

shell - 魚の機能を別の名前に割り当てる

fish_prompt以前の を呼び出したい をカスタマイズしようとしていましfish_promptた。これを行うにはどうすればよいですか:

私はこのように試しました:

しかし、エイリアシングは役に立ちません。単なるエイリアスを作成し、再帰を引き起こします。関数を別の名前に割り当てる方法はありますか (ここでfish_promptfish_prompt2.

0 投票する
2 に答える
21231 参照

fish - この「for」ループを魚の殻に変換するにはどうすればよいですか?

スクリプトを Z シェルから Fish に翻訳していますが、翻訳方法がわからない部分があります。

for私がFishで見つけることができるループの唯一のドキュメントは、この種のものです。フィッシュでこれを行うにはどうすればよいですか?

0 投票する
2 に答える
2352 参照

git - 現在のコマンドを使用してフィッシュ シェル プロンプトを生成する

フィッシュ シェル プロンプトで git ステータスを生成しようとしています。私が抱えている問題は、git ステータスの取得が少し遅いことです。そのため、現在の git ステータスをグローバル変数に保持し、ユーザーが特定のコマンド (「cd」や「git」など) を実行したときにのみ更新したいと考えています。「history」コマンドを使用してユーザーが最後に実行したコマンドを取得しようとしていますが、さまざまな結果が得られます。これが私のコードです:

このコードの主な問題は、履歴が何らかの理由で常に最後のコマンドをすぐに返さないことです。「cd」または「git」以外のコマンドを実行してから cd で git ディレクトリに移動すると、別のコマンドを実行して git_status を正しい文字列に更新する必要があります。

プロンプトを生成する必要がある直前にコマンドを実行する他の方法はありますか?

[アップデート]

問題を実際に試してみるための端末出力は次のとおりです。

git ディレクトリ (この場合は .oh-my-fish) に cd すると、ブランチ名がすぐに表示されます。ただし、最終的に表示されるのは、別のコマンドを実行した後でのみです。「echo $history[1]」はコマンドラインで正しい値を返しますが、プロンプトメソッド内から実行すると返されないと思います。

ちなみに、このコードをすべて保持している私の github リポジトリへのリンクは次のとおりです: https://github.com/oneself/oh-my-fish