답변1
그런 건 없어요. 보시다시피ctlseq
문서에는 다음에 대한 언급이 하나도 없습니다.단어단어. 지우는 데 사용할 배경색과 단어 오른쪽에 있는 내용을 왼쪽으로 이동할지 여부에 대한 질문도 있습니다. 터미널의 오른쪽 여백에 포함된 단어를 고려해야 할 수도 있습니다.
일부 옵션은 다음과 같습니다.
지우려는 단어의 셀 수만큼 BS 문자를 보낸 다음 SPC(현재 배경색을 사용함)만큼 보낸 다음 다시 BS 문자 수(커서를 다시 뒤로 이동하기 위해)를 보냅니다.
$ printf 'foo bar\b\b\b \b\b\b+\n' foo +
사실상 모든 터미널에서 작동해야 한다는 것입니다.
동일하지만 BS 시퀀스를 사용하는 대신 커서를 해당 양만큼 뒤로 이동하려면
tput cub x
(x
셀 수는 어디에 있습니까)를 사용하십시오. 그리고 해당 셀을 지우는 데 사용할 수 있습니다tput ech x
(현재 배경색이 있거나 터미널에 따라 다름)$ printf 'foo bar'; tput cub 3; tput ech 3; printf '+\n' foo +
대신 을
tput ech x
사용하여tput el
줄 끝까지 지우tput dch x
거나삭제x 셀(그리고 그 뒤의 내용을 왼쪽으로 이동)
( tput
여기에는 terminfo 데이터베이스에 대한 쉘 인터페이스가 있습니다. 하드 코딩 이스케이프 시퀀스를 피하고 해당 언어에 해당하는 것을 사용하는 아이디어입니다).
backward-kill-word
일부 쉘의 위젯( script
예를 들어 출력을 기록하는 데 사용)을 보면 readline
모션과 dch
삭제에 BS를 사용하고 zsh
BS와 및 다시 쓰기의 조합을 사용하는 것을 볼 수 있습니다 cub
. 절대 열 위치 지정( ) tcsh
을 수행하고 삭제하는 데 사용하는 것 같습니다 . ksh93은 CR을 보내고 전체 행을 다시 작성합니다.hba
dch
답변2
나는 그런 순서를 본 적이 없습니다. 생각해보면 단어를 삭제하는 것은 상당히 복잡하고, 다른 작업보다 더 복잡하며, 다른 작업은 화면에 표시된 내용에 어떤 방식으로든 신경을 쓰지 않는 것 같습니다. 예를 들어, 단어를 끝내는 것은 무엇입니까? '_'? '-'? '.'?