30

テキストの段落を出力したこのデモを一度見たことがあります(入力したときに得られるようにsome-command --help)。その後、テキスト内のいくつかのキーワードに戻り、テキストの色を変更しました。 .

それは私にはクレイジーに思えます。彼らはどうやってそれをしたのですか?

stdout考え始めて、技術的には「IOストリーム」だと思うstdinので、カーソルの位置を追跡する永続変数でしょうか?言語パーサーを構築するときに、そのようなことをしたことを覚えています。

目標は次のようになります: コンソールに次のように入力すると、空白の配列が出力されるとします。これは、Node.js ではすべてが非同期であり、コンソールで毎回非同期関数を記述したくないためです。

$ node app.js
> App.User.all()
=> []

次に、非同期コールバックが実行されたら、戻って編集し=> []、結果を含めます。

$ node app.js
> App.User.all()
=> [#<User id:1>, #<User id:2>...]

他にも解決すべき問題がたくさんあるとしても、少なくとも実装方法を知っていれば素晴らしいことです (この質問とは関係ありません。また、グローバル コールバックを定義して、次のようなことができることも知っていますApp.User.all(_c))。

すでに印刷された後、端末出力をどのように編集しますか?

4

2 に答える 2

61

最後に「デモ」が見つかりました:

于 2012-05-31T08:44:09.087 に答える
0

Mac OS Xで作業している場合、プログラムEddieは「印刷済みの端末出力を編集する」ようなことをしていると思います。(「ウィキペディアのEddie(テキストエディタ)」を参照してください)。

ファイルメニューで「新規」を選択し、「設定/ドキュメント設定...」で「シェルウィンドウ」を選択します。その後、いくつかのUNIXコマンド(date、ls、calなど)を試してください。次に、カーソルを置いてこれらを編集します。

Nodeを試してみたのですが、Mac OS X 10.5.8ではインストールできませんでした(Node)。

于 2012-05-15T02:06:01.220 に答える