/bin/sh スクリプトを使用して、端末で数行のテキストを下にスクロールしようとします。この場合、smcup、rmcupを使用したソリューションは許可されません。
試した他の多くのオプションが失敗しました(次を含む)。ジェイドBP):
tput cup 0 0; tput ri
tput cup 0 0; tput rin 3
man terminfo は以下を指定するので、これは少し奇妙です。
テキストを下にスクロールするには、プログラムは画面の左上に移動してri(逆方向インデックス)文字列を送信します。文字列 ind と ri は、画面の対応する角にない場合は定義されません。
テストを実行する前に端末の出力をスクロールできる必要があります(テストの前にset、envを試してください)。
xtermのソリューションで十分です。
テストをスピードアップして明確にするには、このスクリプトを使用して始めます。
#!/bin/sh
# create scrollable text
set
# includes correction from JdeBP
# try to scroll text down one line
tput cup 0 0; tput ri
# includes correction from JdeBP
# try to scroll text down 3 lines
tput cup 0 0; tput rin 3
答え1
tput cup 0 0, ri
これが失敗したことも当然です。これはないtput
プログラムのコマンドライン構文。
カップ0 0を入れる ツーツリー
とても簡単です。
XTerm 以上の複雑なタスクを実行する上級ユーザー向けの注意事項:
- 実際のターミナルと高品質のエミュレータでは、デフォルト以外の上部と下部の余白とオフの生モードが、モーションとスクロールするためにカーソルを配置する必要がある場所に影響します。 terminfoモデルが示唆するほど単純ではありません。たとえば、実際のDEC端末の詳細については、DEC VT4xx / 5xx docoを参照してください。
- DECの世界では、SDとSUはバッファスクロールではなくウィンドウ変換です。 VT525にはマルチウィンドウ機能があり、これらの制御シーケンスはメインバッファの周りにウィンドウを移動します。
- 一部の過酷な8ビット以外のクリーンターミナルエミュレータは、U + 0084とU + 008DをINDとRIとして正しく認識できず、7ビットエイリアスを強制的に使用します。