行削除 (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__|