插入行 (IL)
在当前光标位置插入空白行。
- 0x1B
- ESC
- 0x5B
- [
- ____
- n
- 0x4C
- L
在当前光标位置插入 n 行,并将现有行下移。
参数 n 必须是大于等于 1 的整数。如果 n 小于
等于 0,则将 n 调整为 1。如果省略 n,则 n 默认为 1。
如果当前光标位置在当前滚动区域之外, 此序列不执行任何动作。光标在以下情况位于当前滚动区域之外: 高于 上边距、低于 下边距、 位于 左边距 左侧或 右边距 右侧。
此序列会取消待定换行状态。
此序列将光标列移动到左边距。
从当前光标行开始向下 n 行,插入按当前 SGR 状态着色的空白行。
插入一行时,所有现有内容向下移动一行。最底行
是下边距。如果内容被移出下边距之外,
则这些内容会丢失;下边距之外的现有内容保持不变且不会移动。
如果设置了 左边距 或 右边距, 则只有边距内(含边距)的单元格会被清空(插入时)或移动。 左边距左侧或右边距右侧的其他现有内容保持不变。
如果多单元格字符会被拆分,则擦除整个多单元格字符。例如, 如果“橋”打印在左边距左侧,而由 IL 导致的行下移会拆分该字符, 则应擦除该单元格。
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC\n"
printf "DEF\n"
printf "GHI\n"
printf "\033[2;2H"
printf "\033[L"
|ABC_____|
|c_______|
|DEF_____|
|GHI_____|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC\n"
printf "DEF\n"
printf "GHI\n"
printf "\033[3;4r" # scroll region top/bottom
printf "\033[2;2H"
printf "\033[L"
|ABC_____|
|DEF_____|
|GHI_____|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC\n"
printf "DEF\n"
printf "GHI\n"
printf "123\n"
printf "\033[1;3r" # scroll region top/bottom
printf "\033[2;2H"
printf "\033[L"
|ABC_____|
|c_______|
|DEF_____|
|123_____|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC123\n"
printf "DEF456\n"
printf "GHI789\n"
printf "\033[?69h" # enable left/right margins
printf "\033[2;4s" # scroll region left/right
printf "\033[2;2H"
printf "\033[L"
|ABC123__|
|Dc__56__|
|GEF489__|
|_HI7____|