.inputrc의 제어 문자 이해

.inputrc의 제어 문자 이해

원격 시스템의 내 Linux 계정에는 다음이 미리 정의되어 있습니다..inputrc

"\e[1~": beginning-of-line
"\e[4~": end-of-line
“\e[5~”: history-search-backward
“\e[6~”: history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

set completion-ignore-case on
set bell-style visible
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on

GNU bash 문서를 읽고 있습니다.주제에\e[1~, 그러나 문자 시퀀스 , \e[5C, 등 이 무엇을 의미하는지 설명하는 섹션을 찾을 수 없습니다 \e\e[D.

(내 키보드에 있는 것 같아요 ) \e을 의미하는 곳을 읽었지만 다른 제어 문자 , 등 이 무엇을 의미하는지 이해하지 못하는 것 같습니다.meta characterAlt[~5D

해당 주제에 대한 좋은 참고 자료를 아는 사람이 있나요?

답변1

이것들은ANSI 제어 코드 이스케이프 시퀀스"터미널" 키보드에서 영숫자가 아닌 다양한 키를 누를 때 전송되는 것입니다.

\e는 ASCII "ESCAPE" 문자(8진수 033 16진수 1B 10진수 27)를 의미합니다. CSI(명령 시퀀스 소개)의 일부입니다.

Escape [ 2 ~는 "Insert"라고 표시된 키를 누를 때 전송되는 문자 시퀀스입니다.VT220(이상) 터미널.

이러한 규칙 중 다수는 xterm 및 Linux 콘솔/셸과 같은 소프트웨어에 채택되었으며, 종종 다양하고 때로는 호환되지 않는 방식으로 확장되었습니다.

Bash의 READLINE 함수에서 이러한 시퀀스를 사용하는 방법은매뉴얼 페이지~을 위한읽어보기

       두 번째 형식인 "keyseq":함수 이름 또는 매크로에서는 keyseq가 다릅니다.
       전체 키 시퀀스를 나타내는 문자열은 위의 키 이름에서
       큰따옴표 안에 시퀀스를 넣어 지정합니다. 일부 GNU
       다음 예와 같이 Emacs 스타일 키 이스케이프를 사용할 수 있지만
       기호 문자 이름은 인식되지 않습니다.

          "\Cu": 보편적인 인수
          "\Cx\Cr": 초기화 파일 다시 읽기
          "\e[11~": "기능 키 1"

어떤 키보드 키에 해당하는 이스케이프 시퀀스 목록을 얻으려면 infocmp -L -1다음 과 같은 명령을 사용할 수 있습니다.infocmp -L -1 xterm

관련 정보