3 my @generic = qw(^l ! * / : ; < = > ? H L M Z [ ] j k n q t z);
8 ';' => ["apply to tagged", 'mi arg'], # tag-prefix
9 '@' => ["display sender", 'ci'], # display-address
10 ':' => ["enter command", 'mi'], # enter-command
11 '=' => ["first entry", 'po'], # first-entry
12 ']' => ["half page down", 'pm'], # half-down
13 '[' => ["half page up", 'pm'], # half-up
14 '?' => ["help", 'ci'], # help
15 '!' => ["invoke shell", 'ci arg'], # shell
16 '*' => ["last message", 'po'], # last-entry
17 '>' => ["line $sign{down}", 'pm'], # next-line
18 '<' => ["line $sign{up}", 'pm'], # previous-line
19 '.' => ["list new mail", 'mv'], # buffy-list #TODO
20 '|' => ["pipe to shell", 'mi'], # pipe-message
21 '$' => ["save mailbox", 'co'], # sync-mailbox
22 '/' => ["search", 'po arg mode/~'], # search
23 '#' => ["split up thread", 'co'], # break-thread
24 '&' => ["thread tagged", 'co'], # link-threads
25 '%' => ["toggle reado$sign{_}nl$sign{_}y", 'co'], # toggle-write
28 'a' => ["create alias", 'mi'], # create-alias
29 'b' => ["bounce", 'mo'], # bounce-message
30 '^b'=> ["url$sign{_}view", 'ci'],
31 '+b'=> ["search bodies"], # M <search>~b
32 'c' => ["open folder", 'mv'], # change-folder
33 'C' => ["copy message", 'mi'], # copy-message
34 '+c'=> ["open readonly", 'mv'], # change-folder-readonly
35 '+C'=> ["make plain copy"], # decode-copy
36 'd' => ["delete", 'co'], # delete-message
37 'D' => ["delete patt$sign{_}er$sign{_}n", 'co arg'], # delete-pattern
38 '^d'=> ["delete thread", 'co'], # delete-thread
39 '+d'=> ["delete subthread", 'co'], # delete-subthread
40 'e' => ["edit", 'co'], # edit
41 '^e'=> ["edit con$sign{_}tent type", 'co'], # edit-type
42 '+e'=> ["edit+send copy"], # resend-message
43 'f' => ["forward", 'mo modem'], # forward-message
44 'F' => ["toggle important", 'co'], # flag-message
45 '^f'=> ["forget pass$sign{_}phras$sign{_}e", 'mi'], # forget-passphrase
46 'g' => ["reply to all", 'mo modem', 'Group reply'], # group-reply
47 'G' => ["fetch POP", 'mi', 'Gather new mail'], # fetch-mail
48 'h' => ["toggle headers", 'me'], # display-toggle-weed
49 'H' => ["screen top", 'po'], # top-page
50 '^i'=> ["unread msg $sign{down}", 'po'], # next-new-then-unread
51 '+^i'=> ["unread msg $sign{up}"], # previous-new-then-unread
52 'j' => ["entry $sign{down}", 'po'], # next-entry, next-undeleted
53 'J' => ["messag$sign{_}e $sign{down}", 'po'], # next-entry
54 'k' => ["entry $sign{up}", 'po'], # previous-entry, previous-undeleted
55 'K' => ["messag$sign{_}e $sign{up}", 'po'], # previous-entry
56 '^k'=> ["extract pub keys", 'ci'], # extract-keys
57 '+k'=> ["send public key", 'mo modem'], # mail-key
58 'l' => ["limit pattern", 'me'], # limit
59 'L' => ["reply to list", 'mo modem'], # list-reply
60 '^l'=> ["redraw", 'ci'], # refresh
61 '+l'=> ["show current limit", 'ci'], # show-limit
62 'm' => ["compo$sign{_}s$sign{_}e mail", 'mo modem'], # mail
63 'M' => ["screen middle", 'po'], # middle-page
64 '^m'=> ["select", 'mi mode^m'], # select-entry, display-message
65 'n' => ["search $sign{down}", 'po'], # search-next
66 'N' => ["toggle new", 'co'], # toggle-new
67 '^n'=> ["thread $sign{down}", 'po'], # next-thread
68 '+n'=> ["subthr$sign{_}ead $sign{down}", 'po'], # next-subthread
69 'o' => ["sort", 'me modeo'], # sort-mailbox
70 'O' => ["sort reverse", 'me modeo'], # sort-reverse
71 'p' => ["print", 'ci'], # print-message
72 'P' => ["to parent", 'po'], # parent-message
73 '^p'=> ["thread $sign{up}", 'po'], # previous-thread
74 '+p'=> ["subthr$sign{_}ead $sign{up}", 'po'], # previous-subthread
75 '+P'=> ["check for pgp"], # check-traditional-pgp
76 'q' => ["exit or quit", 'mv'], # exit, quit
77 'Q' => ["query addr$sign{_}ess$sign{_}es", 'ci arg'], # query
78 'r' => ["reply to sender", 'mo modem'], # reply
79 'R' => ["recall postpon$sign{_}e$sign{_}d", 'mo modem'], # recall-message
80 '^r'=> ["mark thread read", 'co'], # read-thread
81 '+r'=> ["mark sub$sign{_}thread r$sign{_}ead", 'co'], # read-subthread
82 's' => ["move", 'co'], # save-message
83 '+s'=> ["save and delete", 'co'], # decode-save
84 't' => ["tag", 'co'], # tag-entry
85 'T' => ["tag patt$sign{_}er$sign{_}n", 'co arg'], # tag-pattern
86 '^t'=> ["untag pattern", 'co'], # untag-pattern
87 '+t'=> ["tag thread", 'co'], # tag-thread
88 'u' => ["undo delete", 'co'], # undelete-message
89 'U' => ["res$sign{_}tore pat$sign{_}t$sign{_}er$sign{_}n", 'co arg'], # undelete-pattern
90 '^u'=> ["restore thread", 'co'], # undelete-thread
91 '+u'=> ["restore subthread", 'co'], # undelete-subthread
92 'v' => ["attach$sign{_}ments", 'ci'], # view-attachments
93 'V' => ["version", 'ci'], # show-version
94 '+v'=> ["(un)collapse thread", 'me'], # collapse-thread
95 '+V'=> ["(un)collapse threads", 'me'], # collapse-all
96 'w' => ["set flag", 'co arg'], # set-flag
97 'W' => ["clear flag", 'co arg'], # clear-flag
98 'x' => ["exit menu", 'mv'], # exit
99 'y' => ["list incoming mailboxes", 'mv'], # M <change-folder>?<toggle-mailboxes>
100 'z' => ["page $sign{down}", 'pm'], # next-page
101 'Z' => ["page $sign{up}", 'pm'], # previous-page
105 'L' => ["screen bottom"], # bottom-page
109 desc => 'search flags (/~)',
112 b => ["msg body", 'X arg'],
113 B => ["whole msg", 'arg'],
114 c => ["cc address", 'arg'],
115 C => ["to or cc address", 'arg'],
116 d => ["date sent ran$sign{_}g$sign{_}e", 'arg'],
118 e => ["sender", 'arg'],
120 f => ["from", 'arg'],
123 G => ["encryp$sign{_}ted"],
124 h => ["header", 'arg'],
125 H => ["spam attr$sign{_}ib$sign{_}ute", 'arg'],
126 i => ["msg id", 'arg'],
128 L => ["receiv$sign{_}d by", 'arg'],
129 l => ["mailing list"],
130 m => ["num$sign{_}ber ran$sign{_}g$sign{_}e", 'arg'],
131 n => ["score range", 'arg'],
137 r => ["receive date ran$sign{_}ge", 'arg'],
140 S => ["super$sign{_}seded"],
141 t => ["to address", 'arg'],
143 u => ["subscr$sign{_}ibed list"],
145 v => ["collapsed thread"],
147 x => ["refer$sign{_}ence", 'arg'],
148 X => ["attach$sign{_}ments", 'arg'],
149 y => ["x-label", 'arg'],
150 z => ["size range", 'arg'],
151 '=' => ["dupli$sign{_}cate"],
152 '$' => ["unrefer$sign{_}enced"],
153 '(' => ["in thread", 'arg'],