リバースインデックス (RI)
カーソルを 1 セル上げ、必要に応じてスクロールします。
- 0x1B
- ESC
- 0x4D
- M
このシーケンスは保留中の折り返し状態を解除しません。
カーソルがちょうど 上マージン 上にあり、左右マージン の内側にある場合、n = 1 を指定して 下スクロール (SD) を実行します。操作は完了します。
それ以外の場合はスクロールは不要です。n = 1 を指定して カーソル上移動 を実行します。
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "A\n"
printf "B\n"
printf "C\n"
printf "\033[1;1H" # move to top-left
printf "\033M" # reverse index
printf "X"
|Xc________|
|A_________|
|B_________|
|C_________|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "A\n"
printf "B\n"
printf "C\n"
printf "\033[2;1H"
printf "\033M" # reverse index
printf "X"
|Xc________|
|B_________|
|C_________|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "A\n"
printf "B\n"
printf "C\n"
printf "\033[2;3r" # scroll region
printf "\033[2;1H"
printf "\033M" # reverse index
|A_________|
|c_________|
|B_________|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "A\n"
printf "B\n"
printf "C\n"
printf "\033[2;3r" # scroll region
printf "\033[1;1H"
printf "\033M" # reverse index
|A_________|
|B_________|
|C_________|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC\n"
printf "DEF\n"
printf "GHI\n"
printf "\033[?69h" # enable left/right margins
printf "\033[2;3s" # scroll region left/right
printf "\033[1;2H"
printf "\033M"
|A_________|
|DBC_______|
|GEF_______|
|_HI_______|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC\n"
printf "DEF\n"
printf "GHI\n"
printf "\033[?69h" # enable left/right margins
printf "\033[2;3s" # scroll region left/right
printf "\033[2;1H"
printf "\033M"
|ABC_______|
|DEF_______|
|GHI_______|
カーソルは A 上にあります。