(行の先頭または末尾ではなく)2つの位置の間の端末の文字列をクリアする必要があります。たとえば、tput cup 5 10
からtput cup 5 69
までのすべてを削除します。 1行。
はい、この領域全体をスペースで単純にecho
することは可能ですが、もっと良い方法はありますか?現在のカーソル行位置のclear 10 69
のようなもの。
文字の消去制御シーケンスを探しています。
tput cup 5 10 ; tput ech 59
これを文字を削除と混同しないでください。
tput cup 5 10 ; tput dch 59
消去は空白で上書きします。削除すると、残りの行が左に移動します。
前述のように、ech
(文字の消去)は、機能する場合の方法です。これはVT102に付属しているため、使用するほとんどの端末がこの機能を提供します。
Ncursesからの端末の説明については、色に問題があります。1995〜 1996年のrxvtの開発者は、背景色のクリアに関するアイデアの異なる解釈を使用し、(Linuxコンソールおよびxtermのように)消去を処理しませんでしたclearingと同じです。したがって、ech
はデフォルトの色でクリアされ、ed
(erase display)は現在のANSIカラーでクリアされます。このため、ncurses端末の説明ではech
が省略されています。同じ問題が、そのソースから派生したすべてのプログラムに当てはまります。
参考文献:
tput
をcup
およびech
機能:cursor_address cup cmは行#1列#2に移動します erase_chars ech ecerase#1文字(P)