/
_key_codes.ts
118 lines (103 loc) 路 1.98 KB
/
_key_codes.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/** Base key mapping. */
export const KeyMap: Record<string, string> = {
/* xterm/gnome ESC [ letter (with modifier) */
"[P": "f1",
"[Q": "f2",
"[R": "f3",
"[S": "f4",
/* xterm/gnome ESC O letter (without modifier) */
"OP": "f1",
"OQ": "f2",
"OR": "f3",
"OS": "f4",
/* xterm/rxvt ESC [ number ~ */
"[11~": "f1",
"[12~": "f2",
"[13~": "f3",
"[14~": "f4",
/* from Cygwin and used in libuv */
"[[A": "f1",
"[[B": "f2",
"[[C": "f3",
"[[D": "f4",
"[[E": "f5",
/* common */
"[15~": "f5",
"[17~": "f6",
"[18~": "f7",
"[19~": "f8",
"[20~": "f9",
"[21~": "f10",
"[23~": "f11",
"[24~": "f12",
/* xterm ESC [ letter */
"[A": "up",
"[B": "down",
"[C": "right",
"[D": "left",
"[E": "clear",
"[F": "end",
"[H": "home",
/* xterm/gnome ESC O letter */
"OA": "up",
"OB": "down",
"OC": "right",
"OD": "left",
"OE": "clear",
"OF": "end",
"OH": "home",
/* xterm/rxvt ESC [ number ~ */
"[1~": "home",
"[2~": "insert",
"[3~": "delete",
"[4~": "end",
"[5~": "pageup",
"[6~": "pagedown",
/* putty */
"[[5~": "pageup",
"[[6~": "pagedown",
/* rxvt */
"[7~": "home",
"[8~": "end",
};
/** Shift key mapping. */
export const KeyMapShift: Record<string, string> = {
/* rxvt keys with modifiers */
"[a": "up",
"[b": "down",
"[c": "right",
"[d": "left",
"[e": "clear",
"[2$": "insert",
"[3$": "delete",
"[5$": "pageup",
"[6$": "pagedown",
"[7$": "home",
"[8$": "end",
"[Z": "tab",
};
/** Ctrl key mapping. */
export const KeyMapCtrl: Record<string, string> = {
/* rxvt keys with modifiers */
"Oa": "up",
"Ob": "down",
"Oc": "right",
"Od": "left",
"Oe": "clear",
"[2^": "insert",
"[3^": "delete",
"[5^": "pageup",
"[6^": "pagedown",
"[7^": "home",
"[8^": "end",
};
/** Special key mapping. */
export const SpecialKeyMap: Record<string, string> = {
"\r": "return",
"\n": "enter",
"\t": "tab",
"\b": "backspace",
"\x7f": "backspace",
"\x1b": "escape",
" ": "space",
};