2010-11-19 11 views
2

unixの典型的なワークフローは、lessのようなページャで終わるフィルタのパイプラインを使用することです。例えば。今(swi)プロローグのようなless-likeページャ

grep | sed | awk | less 

を(引数を省略)、SWI-プロローグのコマンドラインでの一般的なワークフローの一つは、それは容易に私を与え

foo(X),bar(X, Y),qux(buz, Y). 

のように与えられた組み合わせのためのソリューションのセットを提供することを求めていますsoutionsのセット。これは、ターミナルウィンドウよりもずっと長くなります。または単一のクエリ

give_me_long_list(X). 

は、再び画面に表示されない非常に長いリストを与えることができます。だから私はいつも私がラインの最後に|lessを叩きたい状況で自分自身を見つける。

私が探しているのは、ポケベルで一連のソリューションを開くか、ただ一つの大きな用語を開く機能です。似た何か:

give_me_long_list(X), pager(X). 

または

pager([X,Y], (foo(X),bar(X, Y),qux(buz, Y))). 
+1

スクロールする端末の調整はどうですか?スクロールバッファには、通常何百行もありません。 PrologはEmacsで実行して、無限のスクロールを提供することもできます。 Emacs * shell *モードや、[ediprolog](http://www.logic.at/prolog/ediprolog/ediprolog.html)などの拡張機能を使用してください。 – frayser

+0

'portray_clause'とscollの端末を使用しますか? –

答えて

0

これは完全なソリューションではありませんが、あなた自身のpager述語を書くことはかなり容易ではないでしょうか?手順:theseまたはthose述語

の助けを借りて一時ファイルに

  1. Create temp file

  2. ダンプX(私はまだプロローグに任意のI/Oを行っていないが、それはdoesnの

  3. make a system call to less <tempfile>

関連する問題