游標上移 (CUU)

將游標上移 `n` 個儲存格。

  1. 0x1B
    ESC
  2. 0x5B
    [
  3. ____
    n
  4. 0x41
    A

參數 n 必須是大於等於 1 的整數。如果 n 小於 等於 0,則將 n 調整為 1。如果省略 n,則 n 預設為 1。

此序列總是取消待定換行狀態。

如果目前游標位置在 上邊界 處或之下, 游標能移動到的最高點是上邊界。如果目前游標位置在上邊界之上, 游標能移動到的最高點是第一列。

驗證

CUU V-1:游標上移

printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[3;1H"
printf "A"
printf "\033[2A" # cursor up
printf "X"
|_Xc_______|
|__________|
|A_________|

CUU V-2:游標上移(低於上邊界)

printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\n\n\n\n" # screen is 4 high
printf "\033[2;4r" # set scrolling region
printf "\033[3;1H"
printf "A"
printf "\033[5A" # cursor up
printf "X"
|__________|
|_Xc_______|
|A_________|
|__________|

CUU V-3:游標上移(高於上邊界)

printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\n\n\n\n\n" # screen is 5 high
printf "\033[3;5r" # set scrolling region
printf "\033[3;1H"
printf "A"
printf "\033[2;1H" # move above region
printf "\033[5A" # cursor up
printf "X"
|Xc________|
|__________|
|A_________|
|__________|
|__________|