ウィンドウでコマンドプロンプトを実行しているときに、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. Mitmproxy Linuxの画面をクリアする
- 2. MySQLの画面をクリアするには?
- 3. Linuxの別のソフトウェアのウィンドウをクリックすると、SDLがウィンドウ画面をクリアします
- 4. ターミナル画面をクリアするクロスプラットフォームRubyメソッド
- 5. 画面をクリアするには? (PYTHON)
- 6. WPF:テキストボックス/コンボボックスの内容がウィンドウの画面を超えます
- 7. C言語の画面をクリア
- 8. 「ゲームオーバー」画面の「ゲーム」画面から何かをクリアする方法は?
- 9. ウィンドウを閉じるExtJSの画面が
- 10. 画面上のすべてのjqGridグリッドをクリアするには?
- 11. Swift 3のロック画面からのローカル通知をクリアする
- 12. 画面の一部のみをクリアするには?
- 13. WPFウィンドウ全画面対最大ウィンドウ
- 14. Wordpress - customize.php画面のThickboxウィンドウを開く
- 15. ウィンドウでのアプリケーションの実行ログイン画面
- 16. C++ unixの端末画面の一部をクリアしますか?
- 17. Adobe Flexでのウィンドウ画面キャプチャ?
- 18. 2次ディスプレイのココア全画面ウィンドウ
- 19. ウィンドウのQt 5.7黒い画面
- 20. 画面をクリアし、カーソル位置をコボルの画面の最後に設定する
- 21. GNU画面で現在のウィンドウの隣にウィンドウを作成する方法は?
- 22. tkinter(Python)のウィンドウをクリアするには?
- 23. ウィンドウ上のテキストボックスコントロールをクリアする
- 24. Cocoa - 画面上の現在のウィンドウ位置を取得する
- 25. CLISPで画面をクリアするコマンドはどれですか?
- 26. ボタンをクリックして画面をクリアする方法は?
- 27. 画面をキャプチャして画像内の特定のウィンドウを無視する方法
- 28. ウィンドウをカーネルレベルのドライバで画面をロックする
- 29. 画面を効率的にクリアするには
- 30. Javaの画面上のあるポイントでウィンドウを見つける
ナイスキャッチ。私は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