回车 (CR)

将光标移动到最左列。

  1. 0x0D
    CR

该序列总是取消待处理的换行状态。

如果启用了 原点模式(模式 6),光标会被设置到滚动区域的 左边距,操作结束。

如果未设置原点模式,且光标位于左边距上或其右侧,则光标被设置到左边距。如果光标位于左边距左侧,则光标移动到终端的最左列。

验证

CR V-1:取消待处理换行

cols=$(tput cols)
printf "\033[${cols}G" # move to last column
printf "A" # set pending wrap state
printf "\r"
printf "X"
echo
|X________A|
|c_________|

CR V-2:左边距

cols=$(tput cols)
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[?69h" # enable left/right margin mode
printf "\033[2;5s" # set left/right margin
printf "\033[4G"
printf "A"
printf "\r"
printf "X"
|_XcA______|

CR V-3:左边距左侧

cols=$(tput cols)
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[?69h" # enable left/right margin mode
printf "\033[2;5s" # set left/right margin
printf "\033[4G"
printf "A"
printf "\033[1G"
printf "\r"
printf "X"
|Xc_A______|

CR V-3:带原点模式的左边距

cols=$(tput cols)
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[?6h" # enable origin mode
printf "\033[?69h" # enable left/right margin mode
printf "\033[2;5s" # set left/right margin
printf "\033[4G"
printf "A"
printf "\033[1G"
printf "\r"
printf "X"
|_XcA______|