游標前移 (CUF)

將游標向右移動 `n` 個儲存格。

  1. 0x1B
    ESC
  2. 0x5B
    [
  3. ____
    n
  4. 0x43
    C

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

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

游標可以移動到的最右邊界由目前游標欄和 右邊界 決定。如果游標位於右邊界右側, 則在序列執行期間將右邊界修改為畫面的最右欄。游標可位於的最右欄就是右邊界。

將游標向右移動 n 個儲存格,直至並包括最右邊界。 此序列永不換行或修改儲存格內容。此序列不受 任何終端機模式影響。

驗證

CUF V-1:待定換行被取消

cols=$(tput cols)
printf "\033[${cols}G" # move to last column
printf "A" # set pending wrap state
printf "\033[C" # move forward one
printf "XYZ"
|_________X|
|YZ________|

CUF V-2:停用反向換行時的最右邊界

printf "A"
printf "\033[500C" # forward larger than screen width
printf "B"
|A________Bc

CUF V-3:右邊界左側

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[1G" # move to left
printf "\033[500C" # forward larger than screen width
printf "X"
|____X_____|

CUF V-4:右邊界右側

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[6G" # move to right of margin
printf "\033[500C" # forward larger than screen width
printf "X"
|_________X|