儲存游標 (DECSC)

儲存可透過還原游標 (DECRC) 還原的各種游標相關狀態。

  1. 0x1B
    ESC
  2. 0x37
    7

下列屬性會被儲存:

任何時候只能儲存一個游標。若重複執行儲存游標,先前儲存的游標會被覆寫。

主畫面與替代畫面擁有各自獨立的已儲存游標狀態。在主畫面儲存的游標無法從替代畫面存取,反之亦然。

驗證

SC V-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____|

SC V-2:待處理換行狀態

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_________|

SC V-3:SGR 屬性

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" 應具有相同的樣式。