readline: add emacs C-x mode
[sheet.git] / readline.inc.pl
1 use utf8;
2
3 '' => {
4         desc => "emacs mode",
5
6         '+\\'=> ["delete whitesp$sign{_}ace", 'mo'],
7         '+_' => '+.',
8         '+>' => ["history end", 'co'],
9         '+<' => ["history start", 'co'],
10         '+.' => ["insert last", 'co'],
11         '+#' => ["prefix comm$sign{_}en$sign{_}t", 'mi'],
12         '+*' => ["complet$sign{_}e all", 'mi'],
13         '^]' => ["find char", 'pm arg'],
14         '^+]'=> ["rev find char", 'pm arg'],
15         '^?' => '^h',
16         '+?' => ["list complet$sign{_}ion$sign{_}s", 'ci'],
17         '+=' => '+?', # emacs
18         '^@' => ["set mark", 'mv'],
19         '+&' => ["tilde expand", 'mi'],
20         '+~' => '+&', # emacs
21         '^_' => ["undo", 'co'],
22
23         '+~' => ["user$sign{_}name exp$sign{_}and", 'mi ext'], # common emacs => '+&'
24         '+!' => ["cmd expand", 'mi ext'],
25         '+@' => ["host$sign{_}name exp$sign{_}and", 'mi ext'],
26         '+$' => ["variable expand", 'mi ext'],
27         '+^' => ["history expand", 'co ext'],
28         '+/' => ["filename expand", 'ci ext'],
29
30         '^a' => ["begin of line", 'pm'],
31         '^b' => ["char back$sign{_}w$sign{_}ard$sign{_}s", 'pm'],
32         '+b' => ["word back$sign{_}w$sign{_}ard$sign{_}s", 'pm'],
33         '+c' => ["capital$sign{_}ise word", 'mi'],
34         '^d' => ["delete char", 'mo'],
35         '+d' => ["delete word rem$sign{_}ain$sign{_}der", 'mo ring'],
36 #       '^e' => ["emacs mode", 'me'],
37         '^e' => ["end of line", 'pm'],
38         '^f' => ["char forward", 'pm'],
39         '+f' => ["word forward", 'pm'],
40         '^g' => ["abort cmd, bell", 'mv'],
41         '^h' => ["back$sign{_}space", 'mo'],
42         '^i' => ["auto$sign{_}complet$sign{_}e", 'mi', '(tab)'],
43         '^j' => '^m',
44         '^+j'=> ["vim mode", 'me'],
45         '^k' => ["delete till eol", 'mo ring'],
46         '^l' => ["clear screen", 'ci'],
47         '+l' => ["lowcase word", 'mi'],
48         '^m' => ["enter line", 'co', '(enter)'],
49         '^n' => ["history next", 'co'],
50         '+n' => ["match history", 'co'],
51         '^o' => ["enter and next", 'co ext'],
52         '^p' => ["history back", 'co'],
53         '+p' => ["rev match history", 'co'],
54         '^q' => '^v', # Quote
55         '^r' => ["reverse history", 'co'],
56         '+r' => ["full undo", 'co', 'Revert'],
57         '^s' => ["search history", 'co'],
58         '^t' => ["move char forw$sign{_}ard", 'mi', 'Transpose char'],
59         '+t' => ["move word forw$sign{_}ard", 'mi', 'Transpose word'],
60         '^u' => ["delete till bol", 'mo ring'], # unix
61         '+u' => ["upcase word", 'mi'],
62         '^v' => ["verbatim char", 'mv'],
63         '^w' => ["delete word", 'mo ring'], # unix
64         '^x' => ["extend$sign{_}ed", 'me arg mode^x'],
65         '^y' => ["yank top", 'co'],
66         '+y' => ["rotate yank", 'co ring'],
67         '^+y'=> ["yank arg"],
68 },
69
70 '^x' => {
71         lead => $ascii ? "'x"  : "x̂",
72         desc => 'emacs ctrl-x bindings',
73
74         '^h' => '^u',
75         '('  => ["start macro", 'mv'],
76         ')'  => ["end macro", 'mv'],
77         'e'  => ["run macro", 'mv', 'Execute'],
78         '^e' => ["editor", 'mi ext linkvim'],
79         '^r' => ["reload inputrc", 'mv'],
80         '^u' => '^_',
81         '^x' => ["swap cursor", 'pm', 'eXchange'],
82         '^g' => '^g',
83         '^h' => '^u',
84         '^v' => ["shell version", 'ci ext'],
85         '^?' => '^x^h',
86 },
87