カーソル位置 (CUP)
カーソルを行 `y`・列 `x` へ移動します。
- 0x1B
- ESC
- 0x5B
- [
- ____
- y
- 0x3B
- ;
- ____
- x
- 0x48
- H
パラメーター y と x は 1 以上の整数でなければなりません。
いずれかが 0 以下の場合、そのパラメーターを 1 に調整します。
値 y と x はどちらも 1 から数えます。たとえば、最上行は行 1、
画面の最左列は列 1 です。
このシーケンスは常に保留中の折り返し状態を解除します。
原点モード が設定されていない場合、カーソルは y と x で
指定された行・列へ正確に移動します。y の最大値は
画面の最下行、x の最大値は画面の最右列です。
原点モード が設定されている場合、カーソル位置は
スクロール領域の左上隅を基準に設定されます。y = 1 は
上マージン に、x = 1 は 左マージン に対応します。
y の最大値は 下マージン、x の最大値は
右マージン です。
原点モードが設定されている場合、このシーケンスでスクロール領域の境界外に カーソル位置を設定することはできません。
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[2;3H"
printf "A"
|__________|
|__Ac______|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[500;500H"
printf "A"
|__________|
|__________|
|_________Ac
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[2;3r" # scroll region top/bottom
printf "\033[?6h" # origin mode
printf "\033[1;1H" # move to top-left
printf "X"
|__________|
|X_________|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[?69h" # enable left/right margins
printf "\033[3;5s" # scroll region left/right
printf "\033[2;3r" # scroll region top/bottom
printf "\033[?6h" # origin mode
printf "\033[1;1H" # move to top-left
printf "X"
|__________|
|__X_______|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[?69h" # enable left/right margins
printf "\033[3;5s" # scroll region left/right
printf "\033[2;3r" # scroll region top/bottom
printf "\033[?6h" # origin mode
printf "\033[500;500H" # move to top-left
printf "X"
|__________|
|__________|
|____X_____|
cols=$(tput cols)
printf "\033[${cols}G" # move to last column
printf "A" # set pending wrap state
printf "\033[1;1H"
printf "X"
|Xc_______X|