いくつかのプログラムは端末に表示されているものを編集します(ランダムな例を選択するには、プログラム '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. C++ unixの端末画面の一部をクリアしますか?
- 2. ボタンアクションイベント内から画面を更新/再描画する方法
- 3. golangの端末画面の中央にテキストを表示
- 4. BlackBerry - レイアウトの変更中に画面の再描画を防止し、一度にすべてを再描画
- 5. repaint()メソッドは私の画面を再描画しません
- 6. 画面と携帯端末のiframeの幅
- 7. フレックスアプリケーションで不快な画面が再描画されますか?
- 8. vi再描画画面の作成方法は?
- 9. フラッシュバグ - 強制的に画面の再描画
- 10. Androidの画面を再描画する速度を向上させる
- 11. 他のスレッドからプログラムでAndroid搭載端末の画面をオフにする
- 12. ANSIボックス文字を使用して端末にテーブルを描画する
- 13. 再描画AmStockChart
- 14. 再描画グーグルチャート
- 15. jqPlotを再描画する
- 16. NSViewの再描画
- 17. キャンバス上にテキストを描画し、画面
- 18. 画面の端を探すandroid
- 19. 私はすべての25msの再描画され、画面をしました
- 20. 分割画面Emacsを切り替えるには、一方の画面がエディタで、もう一方の画面が端末エミュレータである?
- 21. 画面のDCC++に描画した後に強制描画する
- 22. Android搭載端末のプリント画面を撮っていますか?
- 23. 画面にテキストを描く
- 24. YouTube API:携帯端末で再生できる動画を検索する
- 25. スライスされた「画面」端末で上下にスクロールする方法
- 26. 再描画/リフレッシュカスタムスキンは
- 27. フォームなしで画面に描画
- 28. NSView - 親ビューを再描画せずにサブビューを再描画する方法
- 29. 端末上に独自のディレクトリを持つ最初の複数画面
- 30. スイングのJPanelを再描画
は、今私は理解して...それは常に文字セットを変更するだろうと私はハハ、再起動する必要がありました。 – krs013