刪除字元 (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____|
最右側的兩個儲存格應有紅色背景色。
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_____|