カーソル下移動 (CUD)

カーソルを `n` セル下げます。

  1. 0x1B
    ESC
  2. 0x5B
    [
  3. ____
    n
  4. 0x42
    B

パラメーター n は 1 以上の整数でなければなりません。n が 0 以下の 場合は n を 1 に調整します。n が省略された場合は n が既定で 1 になります。

このシーケンスは常に保留中の折り返し状態を解除します。

現在のカーソル位置が 下マージン 以上(かつ下マージンが設定されている)の場合、 カーソルが移動できる最も低い位置は下マージンです。現在のカーソル位置が 下マージンより下にある場合、カーソルが移動できる最も低い位置は最後の行です。

このシーケンスは決してスクロールを引き起こしません。

検証

CUD V-1: カーソル下移動

printf "A"
printf "\033[2B" # cursor down
printf "X"
|A_________|
|__________|
|_Xc_______|

CUD 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[1;3r" # set scrolling region
printf "A"
printf "\033[5B" # cursor down
printf "X"
|A_________|
|__________|
|_Xc_______|
|__________|

CUD 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[1;3r" # set scrolling region
printf "A"
printf "\033[4;1H" # move below region
printf "\033[5B" # cursor down
printf "X"
|A_________|
|__________|
|__________|
|__________|
|_Xc_______|