光标下移 (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_______|