뒤로/앞으로 단어 삭제를 위한 XTerm 제어 시퀀스?

뒤로/앞으로 단어 삭제를 위한 XTerm 제어 시퀀스?

나는 믿는다이 기사뒤로/앞으로 단어 삭제에 대한 제어 순서를 찾는 데 도움이 될 것입니다.

내 이해는 제어 순서가 \u001b[다음과 같이 시작된다는 것입니다."제어 시퀀스 소개자"(이건 나한테서 받았어이 다른 답변), 하지만 전체 문자열이 무엇인지는 실제로 알 수 없습니다.

컨텍스트(다른 SO 질문에 따라): 내 목표는 키보드 단축키(키 바인딩)에서 VSCode 터미널의 단어를 삭제하기 위한 제어 시퀀스를 실행하는 것입니다.

답변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를 사용하고 zshBS와 및 다시 쓰기의 조합을 사용하는 것을 볼 수 있습니다 cub. 절대 열 위치 지정( ) tcsh을 수행하고 삭제하는 데 사용하는 것 같습니다 . ksh93은 CR을 보내고 전체 행을 다시 작성합니다.hbadch

답변2

나는 그런 순서를 본 적이 없습니다. 생각해보면 단어를 삭제하는 것은 상당히 복잡하고, 다른 작업보다 더 복잡하며, 다른 작업은 화면에 표시된 내용에 어떤 방식으로든 신경을 쓰지 않는 것 같습니다. 예를 들어, 단어를 끝내는 것은 무엇입니까? '_'? '-'? '.'?

관련 정보