カーソル保存 (DECSC)
カーソル復元 (DECRC) で復元できる、カーソル関連の各種状態を保存します。
- 0x1B
- ESC
- 0x37
- 7
次の属性が保存されます:
- 絶対画面座標におけるカーソルの行と列
- 文字セット
- 保留中の折り返し状態
- SGR 属性
- オリジンモード (DEC モード 6)
保存できるカーソルは常に 1 つだけです。カーソル保存を繰り返すと、以前に保存したカーソルは上書きされます。
プライマリ画面と代替画面は、それぞれ別々の保存カーソル状態を持ちます。プライマリ画面で保存したカーソルは代替画面からはアクセスできず、その逆も同様です。
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[1;5H"
printf "A"
printf "\0337" # Save Cursor
printf "\033[1;1H"
printf "B"
printf "\0338" # Restore Cursor
printf "X"
|B___AX____|
cols=$(tput cols)
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[${cols}G"
printf "A"
printf "\0337" # Save Cursor
printf "\033[1;1H"
printf "B"
printf "\0338" # Restore Cursor
printf "X"
|B________A|
|X_________|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[1;4;33;44m"
printf "A"
printf "\0337" # Save Cursor
printf "\033[0m"
printf "B"
printf "\0338" # Restore Cursor
printf "X"
|AX________|
"A" と "X" は同じスタイルになるはずです。