내가 읽고있다이 메시지는 zsh 메일링 리스트에서 온 것입니다.키 바인딩과 관련하여 어떤 키를 눌러야 하는지 알고 싶습니다.
^X^I
(내 생각에는Ctrl-X
Ctrl-I
자본X
과I
)^[^@
(제 생각에는Ctrl-Esc-@
??)^X^[q
(제 생각에는Ctrl-X
Esc-q
??)^XQ
(Q라고 생각해요Ctrl-X
?)
^[[1;3A
^[[1;3D
~에서bindkey
^[[1;5C
^[[A
Esc를 의미하는 것은 알지만 ^[
다른 것을 찾는 방법을 모르겠습니다. 이를 나열하는 공식 참고 자료나 웹사이트가 있나요?
답변1
^c
Ctrl는 +에 대한 일반적인 기호입니다. c여기서씨(대문자) 문자 또는 중 하나입니다 @[\]^_
. 해당하는 것을 지정합니다제어 문자. 해당 관계는 제어 문자의 숫자 코드가 인쇄 가능한 문자(문자 또는 구두점)의 숫자 코드에서 64를 뺀 값이라는 것입니다. 이는 기본 2에서 비트를 0으로 설정하는 것과 같습니다. 또한, ^?
일반적으로 127이라는 문자가 표현된다.
일부 키는 제어 문자를 보냅니다.
- Escape= Ctrl+[
- Tab= Ctrl+I
- Return(또는 Enter또는 ⏎) = Ctrl+M
- Backspace= Ctrl+ ?또는 Ctrl+ H(단말기 구성에 따라 다름)
AltMeta( 과거 Unix 시스템에서 해당 위치의 키 이름이었기 때문에 일반적으로 이렇게 불림 )는 인쇄 가능한 문자와 함께 전송(이스케이프) ^[
되고 그 문자가 이어집니다.
^[
대부분의 기능 키와 커서 키는 문자 뒤에 인쇄 가능한 문자가 오는 이스케이프 시퀀스를 보냅니다 . 자세한 내용은 터미널과 해당 구성에 따라 다릅니다. xterm의 경우 기본값은 다음 문서에 설명되어 있습니다.수동. 본 매뉴얼은 초보자를 위한 매뉴얼이 아닙니다. 다음은 몇 가지 유용한 팁입니다.
- CSI는
^[[
, 이스케이프 다음에 여는 괄호가 오는 것을 의미합니다. - SS3은
^[O
이스케이프 문자 뒤에 대문자 -O가 오는 것을 의미합니다. - "응용 프로그램 모드"는 일반적으로 전체 화면 프로그램이 열리는 모드입니다. 역사적인 이유로 일부 키는 이 모드에서 다른 이스케이프 시퀀스를 보냅니다. (실제로 여러 모드가 있지만 실제로는 충돌이 없기 때문에 중요한 경우 두 모드의 이스케이프 시퀀스를 바인딩할 수 있기 때문에 자세히 설명하지 않겠습니다.)
- 수정자( Shift, Ctrl, Alt/ Meta)는 숫자 코드로 표시됩니다. 이스케이프 시퀀스의 마지막 문자 앞에 세미콜론과 숫자를 삽입합니다. 문서에서 F5send
^[[15~
및 Shift+ F5send 의 예를 들어보세요^[[15;2~
. 보내기^[[
및 한 글자에 대한 커서 키엑스, 수정자를 나타냅니다.중간 사이즈, 이스케이프 시퀀스는 다음과 같습니다.^[[1;MX
Xterm은 다음과 같습니다ANSI 표준이는 물리적 엔드포인트까지 거슬러 올라가는 과거 사용량을 기반으로 합니다. 대부분의 최신 터미널 에뮬레이터는 ANSI 표준을 따르고 전부는 아니지만 일부 xterm 확장을 구현합니다. 그러나 터미널마다 약간의 차이가 있습니다.
그러므로:
^X^I
= Ctrl+ X Ctrl+ I= Ctrl+X Tab^[^@
= Ctrl+ Alt+ @= Escape Ctrl+ @. 대부분의 터미널에서 Ctrl+ 는 = + + = + Space도^@
보냅니다 .^[^@
CtrlAltSpaceEscape CtrlSpace^X^[q
= Ctrl+ X Alt+ q= Ctrl+X Escape q^XQ
= Ctrl+ X Shift+q^[[A
=Up^[[1;3A
= Alt+ Up( Up, 수정자를 의미함1;M
중간 사이즈). 많은 터미널은 실제로 Alt+에 대해 이러한 이스케이프 시퀀스를 보내지 않습니다 cursor key.^[[1;3D
= Alt+Left^[[1;5C
= Ctrl+Right
이스케이프 시퀀스에 해당하는 키를 찾는 일반적이고 편리한 방법은 없습니다. 반대로, 쉘 프롬프트(또는 많은 터미널 기반 편집기에서)에서 코드 다음에 Ctrl+를 누르면 V문자 그대로 이스케이프 시퀀스가 삽입됩니다.
당신은 또한 볼 수 있습니다키보드 입력과 텍스트 출력은 어떻게 작동합니까?그리고키 바인딩 테이블?
답변2
Giles는 다음과 같은 편지를 계속해서 언급했습니다.
해당 관계는 제어 문자의 숫자 코드가 인쇄 가능한 문자(문자 또는 문장 부호)의 숫자 코드에서 64를 뺀 값이라는 것입니다. 이는 기본 2의 비트를 0으로 설정하는 것과 같습니다.
당신은 할 수ascii(7)
. 8진수 보기:
Oct Dec Hex Char Oct Dec Hex Char
────────────────────────────────────────────────────────────────────────
000 0 00 NUL '\0' (null character) 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F
007 7 07 BEL '\a' (bell) 107 71 47 G
010 8 08 BS '\b' (backspace) 110 72 48 H
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
012 10 0A LF '\n' (new line) 112 74 4A J
013 11 0B VT '\v' (vertical tab) 113 75 4B K
014 12 0C FF '\f' (form feed) 114 76 4C L
015 13 0D CR '\r' (carriage ret) 115 77 4D M
016 14 0E SO (shift out) 116 78 4E N
017 15 0F SI (shift in) 117 79 4F O
020 16 10 DLE (data link escape) 120 80 50 P
021 17 11 DC1 (device control 1) 121 81 51 Q
022 18 12 DC2 (device control 2) 122 82 52 R
023 19 13 DC3 (device control 3) 123 83 53 S
024 20 14 DC4 (device control 4) 124 84 54 T
025 21 15 NAK (negative ack.) 125 85 55 U
026 22 16 SYN (synchronous idle) 126 86 56 V
027 23 17 ETB (end of trans. blk) 127 87 57 W
030 24 18 CAN (cancel) 130 88 58 X
031 25 19 EM (end of medium) 131 89 59 Y
032 26 1A SUB (substitute) 132 90 5A Z
033 27 1B ESC (escape) 133 91 5B [
034 28 1C FS (file separator) 134 92 5C \ '\\'
035 29 1D GS (group separator) 135 93 5D ]
036 30 1E RS (record separator) 136 94 5E ^
037 31 1F US (unit separator) 137 95 5F _
...
077 63 3F ? 177 127 7F DEL
^H
백스페이스 문자, ^M
캐리지 리턴 문자, ^J
줄 바꿈 문자, ^I
탭 문자, ^[
이스케이프 문자 등에 해당합니다.
답변3
^ 문자는 컨트롤 키를 나타냅니다. ^[는 ESCAPE 또는 ASCII 27을 생성합니다. 이 맥락에서 일반적으로 대문자 사용은 중요하지 않으며 ^A는 "a" 키와 동시에 누르는 컨트롤 키인 ^a와 동일한 의미입니다.
^[^@은 ESCAPE 다음에 control-@이 오는 것을 의미합니다. 키보드 레이아웃에 따라 "@"을 생성하려면 Shift 또는 Alt-Gr을 동시에 눌러야 할 수도 있습니다.
^X^[q는 control-x 다음에 ESCAPE 다음에 q가 오는 것을 의미합니다.
^[[1;5C는 ESCAPE 뒤에 문자열 "[1;5C"가 오는 것을 의미합니다. 나에게 이것은 색상, 굵게, 기울임꼴 등과 같은 텍스트 속성을 변경하는 터미널 제어 시퀀스처럼 보입니다.
^를 사용하여 제어 키를 나타내는 것이 표준화되어 있는지는 모르겠지만 다음과 같이 수행됩니다.위키피디아 페이지. ^[를 입력하여 ASCII 27을 생성하는 것은 아마도 VT100과 같은 DEC 터미널에서 시작되었으며 현재는 표준일 것입니다.