刪除行 (DL)
在目前游標位置刪除 `n` 行並將現有 行上移。
- 0x1B
- ESC
- 0x5B
- [
- ____
- n
- 0x4D
- M
參數 n 必須是大於等於 1 的整數。如果 n 小於
等於 0,則將 n 調整為 1。如果省略 n,則 n 預設為 1。
如果目前游標位置在目前捲動區域之外, 此序列不執行任何動作。游標在以下情況位於目前捲動區域之外: 高於 上邊界、低於 下邊界、 位於 左邊界 左側或 右邊界 右側。
此序列會取消待定換行狀態。
此序列將游標欄移動到左邊界。
移除目前捲動區域頂部的 n 行,並將現有行上移。
在捲動區域底部產生的空間應為空白,其背景色按目前 SGR 狀態設定。
如果設定了 左邊界 或 右邊界, 則只刪除或移動邊界內(含邊界)的儲存格。 左邊界左側或右邊界右側的其他現有內容保持不變。
如果多儲存格字元會被拆分,則擦除整個多儲存格字元。例如, 如果「橋」列印在左邊界左側,而由 DL 導致的行移動會拆分該字元, 則應擦除該儲存格。
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[M"
|ABC_____|
|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[M"
|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[M"
|ABC_____|
|GHI_____|
|________|
|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[M"
|ABC123__|
|DHI756__|
|G___89__|