いくつかのプログラムは端末に表示されているものを編集します(ランダムな例を選択するには、プログラム 'sl')?私はここのLinuxターミナルについて考えていますが、他のOSでも起こるかもしれませんが、わかりません。私はいつもテキストが表示されたら、そこにとどまったと思っていました。画面全体を再描画せずにどのように変更しますか?端末の画面を再描画する
答えて
多くのアプリケーションはcursesライブラリの使用、またはそれに結合するいくつかの言語を作ります。
進捗情報の更新など、1行で書き直す場合、エスケープシーケンス "\ r"で指定されることが多い特殊文字 "carriage return"は現在の行の先頭にカーソルを戻すことができます。以前そこに書かれたものを上書きする。
端末に送信してカーソルを戻す文字があります。その後、テキストを上書きすることができます。
リストhereがあります。 「カーソルを何かに移動」の行に注意してください。
改行( '\ n')の代わりにキャリッジリターン( '\ r')を使用して端末に送信された行を終了すると、カーソルは現在の行の先頭に移動し、プログラム前に印刷したものの上にさらにテキストを印刷する。私はこれを時折長いタスクの進捗メッセージに使用します。
あなたは、それ以上の端末編集を行うncursesを使用するか、またはその変異する必要がある場合。 @Corporal厄介なの答えに構築するには
、このようcurses/ncurses
として、あなたのためにこの機能の一部を処理する使用可能なライブラリ
#!/bin/bash
i=1
while [ true ]
do
echo -e -n "\r $i"
i=$((i+1))
done
このシェルスクリプトを試してみてくださいは、-nオプションがあります改行を防ぐことができます。 ..と\ rは、あなたが同じラインに何度も何度も書き...キャリッジリターンを行います - なしscrolingまたは何ので、今まで
伍長厄介は、これは最低レベルでどのように行われるかを答えています。簡単な開発のために、curses libraryは単に文字を端末に送るよりも高いレベルの制御を提供します。
のncursesを使用すると、スマート端末上のユーザーインターフェイスを描画することができますクロスプラットフォームのライブラリです。
私はdanioに同意します、ncursesは行く方法です。ここでは良いチュートリアルです:
あなたがコントロールseuqencesを送って、端末によっては。一般的なシーケンスは、たとえば、特定の位置にカーソルを送るesc [; H(Ansi、Xterm、Linux、VT100など)です。しかし、これはユーザーのタイプや端末によって異なります... curses(terminfoファイルと一緒に)は、あなたのためにその情報をラップします。 cat`や私のターミナルを壊す `` less`でバイナリファイルを表示する理由
- 1. 端末でMacOSの画面を回転
- 2. Googleのセキュアシェルで端末の画面を消去する
- 3. ワインのプロセスを端末画面に表示するには?
- 4. mac端末の挿入画面を終了するには
- 5. teeを使って全端末画面を記録する
- 6. ボタンアクションイベント内から画面を更新/再描画する方法
- 7. ハイエンド端末でキャンバス問題に描画する
- 8. C++ unixの端末画面の一部をクリアしますか?
- 9. 再生画面上のレイヤーとしての描画一時停止画面-LibGdx
- 10. BlackBerry - レイアウトの変更中に画面の再描画を防止し、一度にすべてを再描画
- 11. 画面の下端と画面の下端
- 12. golangの端末画面の中央にテキストを表示
- 13. 端末の画面の文字を読む
- 14. repaint()メソッドは私の画面を再描画しません
- 15. フレックスアプリケーションで不快な画面が再描画されますか?
- 16. 画面と携帯端末のiframeの幅
- 17. フラッシュバグ - 強制的に画面の再描画
- 18. vi再描画画面の作成方法は?
- 19. Androidの画面を再描画する速度を向上させる
- 20. jqPlotを再描画する
- 21. 再描画グーグルチャート
- 22. 再描画AmStockChart
- 23. 描画されたマップボックスのGLフィーチャーを再描画する
- 24. 他のスレッドからプログラムでAndroid搭載端末の画面をオフにする
- 25. ANSIボックス文字を使用して端末にテーブルを描画する
- 26. ハイチャートラベルを再描画
- 27. NSViewの再描画
- 28. cリンクリスト構造を画面に描画
- 29. キャンバス上にテキストを描画し、画面
- 30. 私はすべての25msの再描画され、画面をしました
は、今私は理解して...それは常に文字セットを変更するだろうと私はハハ、再起動する必要がありました。 – krs013