擦除行 (EL)
擦除行內容,具體行為取決於命令 `n`。
- 0x1B
- ESC
- 0x5B
- [
- ____
- n
- 0x4B
- K
如果未設定 n,則 n 的值為 0。n 的唯一有效值是
0、1 或 2。如果給出了任何其他 n 值,則不執行此序列。
此序列文件的其餘部分假定 n 是有效值。
對於所有有效的 n 值,此序列會取消待定換行狀態。
游標位置在整個序列執行期間
始終保持不變。
如果 字元選擇屬性選擇 (DECSCA) 已啟用, 或它是目前作用中的畫面上最近一次啟用的保護模式, 則受保護屬性會被忽略。否則,受保護屬性會被尊重。有關此受保護屬性 處理邏輯的更多細節,請參閱 擦除字元 (ECH)。
對於所有操作,如果多儲存格字元會被拆分,則擦除整個多儲存格 字元。例如,如果列印了「橋」,而擦除操作只會擦除該兩儲存格 字元的第一或第二個儲存格,則兩個儲存格都應被擦除。
如果 n 為 0,執行擦除列右側操作。擦除列右側
等同於 擦除字元 (ECH),且 n 設為
從游標到列尾(含游標)的剩餘欄位總數。如果該列是軟換行的,
則只擦除這單列;不會透過換行擦除。此外,該列的換行
狀態會被重設,使該列不再被視為換行的。
如果 n 為 1,執行擦除列左側操作。這會把
游標左側及游標所在的 n 個儲存格替換為空白字元,並
按目前 SGR 狀態給背景著色。可以清空的最左
欄是畫面的第一欄。
左邊界 對此操作沒有影響。
如果 n 為 2,擦除整列。這等同於
擦除左(n = 1)與擦除右(n = 0)同時執行。
printf "ABCDE"
printf "\033[3G"
printf "\033[0K"
|ABc_____|
cols=$(tput cols)
printf "\033[${cols}G" # move to last column
printf "A" # set pending wrap state
printf "\033[0K"
printf "X"
|_______X|
游標應位於「X」上
printf "ABC"
printf "\033[2G"
printf "\033[41m"
printf "\033[0K"
|Ac______|
從 c 起、一直到畫面右邊緣的所有儲存格都應有紅色背景。
printf "AB橋DE"
printf "\033[4G"
printf "\033[0K"
|AB_c____|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "ABCDE"
printf "\033[?69h" # enable left/right margins
printf "\033[1;3s" # scroll region left/right
printf "\033[2G"
printf "\033[0K"
|Ac________|
printf "\033V"
printf "ABCDE"
printf "\033[1\"q"
printf "\033[0\"q"
printf "\033[2G"
printf "\033[0K"
|Ac________|
printf "\033[1\"q"
printf "ABCDE"
printf "\033V"
printf "\033[2G"
printf "\033[0K"
printf "\033[1K"
printf "\033[2K"
|ABCDE_____|
printf "ABCDE"
printf "\033[3G"
printf "\033[1K"
|__cDE___|
printf "ABC"
printf "\033[2G"
printf "\033[41m"
printf "\033[1K"
|_cC_____|
從 c 起向左的所有儲存格都應有紅色背景。
printf "AB橋DE"
printf "\033[3G"
printf "\033[1K"
|__c_DE__|
printf "\033V"
printf "ABCDE"
printf "\033[1\"q"
printf "\033[0\"q"
printf "\033[2G"
printf "\033[1K"
|_cCDE_____|
printf "ABCDE"
printf "\033[3G"
printf "\033[2K"
|__c_______|
printf "ABC"
printf "\033[2G"
printf "\033[41m"
printf "\033[2K"
|_c______|
整列都應有紅色背景。