文字削除 (DCH)
現在のカーソル位置で `n` 文字を削除し、既存の セル内容を左へずらします。
- 0x1B
- ESC
- 0x5B
- [
- ____
- n
- 0x50
- P
パラメーター n は 1 以上の整数でなければなりません。n が 0 以下の
場合は n を 1 に調整します。n が省略された場合は n が既定で 1 になります。
現在のカーソル位置が現在のスクロール領域の外にある場合、 このシーケンスは何もしません。カーソルは、左マージン より左にある場合、 または 右マージン より右にある場合に、現在のスクロール領域の外にあります。
このシーケンスは保留中の折り返し状態を解除します。ただし、カーソル位置が現在の スクロール領域の外にある場合は、保留中の折り返し状態は解除_されません_。 これは 文字挿入 (ICH) と挙動が異なるため、 明示的に触れておく必要があります。
スクロール領域内のセルだけが削除または移動されます。右マージンより右の セルは変更されません。 右マージンから挿入される空欄セルは、現在の SGR 状態に従った背景色の 空白セルです。
複数セル文字(「橋」など)がずれによりセルが半分に分かれる場合、 その複数セル文字はクリップまたは消去されます。典型的な挙動は 画面の右端でクリップし、右マージンで消去しますが、 どちらの挙動でも受け入れられます。
printf "ABC123"
printf "\033[3G"
printf "\033[2P"
|AB23____|
printf "ABC123"
printf "\033[3G"
printf "\033[41m"
printf "\033[2P"
|AB23____|
最も右の 2 つのセルには赤い背景色が付くはずです。
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC123"
printf "\033[?69h" # enable left/right margins
printf "\033[3;5s" # scroll region left/right
printf "\033[2G"
printf "\033[P"
|ABC123__|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABC123"
printf "\033[?69h" # enable left/right margins
printf "\033[3;5s" # scroll region left/right
printf "\033[4G"
printf "\033[P"
|ABC2_3__|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "A橋123"
printf "\033[3G"
printf "\033[P"
|A_123_____|