ウィンドウでコマンドプロンプトを実行しているときに、clear
コマンドを入力して画面をクリアすることができます。ウインドウでswiplプロローグ(コマンドプロンプトにswipl
と入力)を実行しているときに、同じことをどうやって行うのですか?ウィンドウ内のスウィーププロローグの画面をクリアする
7
A
答えて
14
UNIX端末では、library(tty)
リソースがあり、そのリソースはtty_clear/0
ですが、Windows端末はターミナルライブラリをサポートしていません。ただし、彼らはANSI Escape Codesをサポートしています。
エスケープコードは、ESC
(エスケープ)文字で始まる文字シーケンスASCII 0x1B = 27
です。ほとんどはコントロールシーケンスの導入者から始まります。これはエスケープの後に左のブラッカー:ESC [
(CSI
)が続きます。
ですから、形をとりED(データ消去)コマンドであり、これは、画面クリアのためのコードシーケンスを発行することができます
CSI 2 J -- which expands to: ESC [ 2 J
SWI-Prologのことから、これは原始的format/2
を使用して発行することができます。
format('~c~s', [0x1b, "[2J"]). % issue CSI 2 J
ED 2コマンド、クリアフル端末、MSDOS ANSI取り扱い上の左上にカーソルをリセットし、それは、必ずしもすべての端末のケースではない、CUP(カーソル位置と結合するようにベスト)コマンドは、家にリセットするだけで簡単です:CSI H
。
format('~c~s~c~s', [0x1b, "[H", 0x1b, "[2J"]). % issue CSI H CSI 2 J
更新:簡素化の脱出のための\e
エスケープコードを使って代替し、より明確な形のため@CapelliCから
おかげで、!
平野画面クリア:
cls :- write('\e[2J').
や自宅のリセットを持つ:
cls :- write('\e[H\e[2J').
関連する問題
- 1. MySQLの画面をクリアするには?
- 2. C言語の画面をクリア
- 3. 「ゲームオーバー」画面の「ゲーム」画面から何かをクリアする方法は?
- 4. 画面上のすべてのjqGridグリッドをクリアするには?
- 5. 画面の一部のみをクリアするには?
- 6. ウィンドウでのアプリケーションの実行ログイン画面
- 7. C++ unixの端末画面の一部をクリアしますか?
- 8. 2次ディスプレイのココア全画面ウィンドウ
- 9. Adobe Flexでのウィンドウ画面キャプチャ?
- 10. CLISPで画面をクリアするコマンドはどれですか?
- 11. Cocoa - 画面上の現在のウィンドウ位置を取得する
- 12. 描画する前にサブビューの内容をクリアする方法
- 13. Javaの画面上のあるポイントでウィンドウを見つける
- 14. アプリケーションのメイン画面内の画面の表示方法
- 15. ブラックベリーのメイン画面内に新しいメイン画面を開く
- 16. 2つのウィンドウを画面に結合する
- 17. IEウィンドウを画面の前に表示するには
- 18. 画面をクリアせずにNCursesの初期化
- 19. OpenGLの「モーションドラッグ」効果 - フレームごとに画面をクリアしない
- 20. どうすればjavascriptで画面をクリアできますか?
- 21. iosアプリ内でコードの画面を録画する方法は?
- 22. NSRectメイン画面でウィンドウなし
- 23. itermの分割画面/ウィンドウを閉じる
- 24. Win32 C++コンソールのクリア画面が点滅せずに
- 25. WinAPI透明ウィンドウをクリアする方法
- 26. すべての画面でウィンドウを複製
- 27. HTAアプリケーション:画面の右下にウィンドウを配置します
- 28. 関連するウィンドウなしで画面に画像を表示する方法
- 29. NSScreen内蔵のMacBook画面を取得
- 30. コンボボックスのドロップダウンリストがウィンドウ画面の下に表示されます。
ナイスキャッチ。私はANSIシーケンスを忘れていました。 \ eのようにESCを表現することができるので、SWI-Prologの設定ファイルに 'cls: - write( '\ e [2J')'または 'cls: - write( '\ e [H \ e [ 2J ')。' – CapelliC
@CapelliC:役に立った、私はそれがより洗練された洗練された '\ e'をサポートしているか分からなかった。 – Orbling
@CapelliC: '\ e'はISOではなく、GNUとSICStusによって拒否されます。代わりに '\ 33 \'を使用してください。 – false