use utf8;
my %common = (
- 'H' => ["screen top"],
- 'j' => ["entry $sign{down}"],
- 'k' => ["entry $sign{up}"],
- 'L' => ["screen bottom"],
- '^l'=> ["redraw"],
- 'M' => ["screen middle"],
- '^m'=> ["select"],
- 'n' => ["search $sign{down}"],
- 'q' => ["exit"],
- 't' => ["tag"],
- 'z' => ["page $sign{down}"],
- 'Z' => ["page $sign{up}"],
- '*' => ["last entry"],
- '=' => ["first entry"],
- ':' => ["enter command"],
- ';' => ["apply to tagged"],
- '>' => ["line $sign{down}"],
- '<' => ["line $sign{up}"],
- ']' => ["half page $sign{down}"],
- '[' => ["half page $sign{up}"],
- '?' => ["help"],
- '!' => ["invoke shell"],
- '/' => ["search $sign{down}"],
- '+/'=> ["search $sign{up}"],
+ 'H' => "screen top",
+ 'j' => "entry <down>",
+ 'k' => "entry <up>",
+ 'L' => "screen bottom",
+ '^l'=> "redraw",
+ 'M' => "screen middle",
+ '^m'=> "select",
+ 'n' => "search <down>",
+ 'q' => "exit",
+ 't' => "tag",
+ 'z' => "page <down>",
+ 'Z' => "page <up>",
+ '*' => "last entry",
+ '=' => "first entry",
+ ':' => "enter command",
+ ';' => "apply to tagged",
+ '>' => "line <down>",
+ '<' => "line <up>",
+ ']' => "half page <down>",
+ '[' => "half page <up>",
+ '?' => "help",
+ '!' => "invoke shell",
+ '/' => "search <down>",
+ '+/'=> "search <up>",
);
{
key => {
%common,
- '@' => ["display sender"],
- '.' => ["list new mail"],
- '|' => ["pipe to shell"],
- '$' => ["save mailbox"],
- '#' => ["split up thread"],
- '&' => ["thread tagged"],
- '%' => ["toggle reado$sign{_}nl$sign{_}y"],
+ '@' => "display sender",
+ '.' => "list new mail",
+ '|' => "pipe to shell",
+ '$' => "save mailbox",
+ '#' => "split up thread",
+ '&' => "thread tagged",
+ '%' => "toggle reado<>nl<>y",
- 'a' => ["create alias"],
- 'b' => ["bounce"],
- '^b'=> ["url$sign{_}view"],
- '+b'=> ["search bodies"],
- 'c' => ["open folder"],
- 'C' => ["copy messag$sign{_}e"],
- '+c'=> ["open reado$sign{_}nly"],
- '+C'=> ["make plain copy"],
- 'd' => ["delete"],
- 'D' => ["delete patt$sign{_}er$sign{_}n"],
- '^d'=> ["delete thread"],
- '+d'=> ["delete subthread"],
- 'e' => ["edit"],
- '^e'=> ["edit con$sign{_}tent type"],
- '+e'=> ["edit+send copy"],
- 'f' => ["forward"],
- 'F' => ["toggle important"],
- '^f'=> ["forget pass$sign{_}phras$sign{_}e"],
- 'g' => ["reply to all", 'Group reply'],
- 'G' => ["fetch POP", 'Gather new mail'],
- 'h' => ["toggle headers"],
- '^i'=> ["unread msg $sign{down}"],
- '+^i'=> ["unread msg $sign{up}"],
- 'j' => ["messag$sign{_}e $sign{down}"],
- 'k' => ["messag$sign{_}e $sign{up}"],
- 'J' => ["any $sign{down}"],
- 'K' => ["any $sign{up}"],
- '^k'=> ["extract pub keys"],
- '+k'=> ["send public key"],
- 'l' => ["limit pattern"],
- 'L' => ["reply to list"],
- '+l'=> ["show current limit"],
- 'm' => ["compo$sign{_}s$sign{_}e mail"],
- 'N' => ["toggle new"],
- '^n'=> ["thread $sign{down}"],
- '+n'=> ["subthr$sign{_}ead $sign{down}"],
- 'o' => ["sort"],
- 'O' => ["sort reverse"],
- 'p' => ["print"],
- 'P' => ["to parent"],
- '^p'=> ["thread $sign{up}"],
- '+p'=> ["subthr$sign{_}ead $sign{up}"],
- '+P'=> ["check for pgp"],
- 'q' => ["quit"],
- 'Q' => ["query addr$sign{_}ess$sign{_}es"],
- 'r' => ["reply to sender"],
- 'R' => ["recall postpon$sign{_}e$sign{_}d"],
- '^r'=> ["mark thread read"],
- '+r'=> ["mark sub$sign{_}thread r$sign{_}ead"],
- 's' => ["move"],
- '+s'=> ["save and delete"],
- 'T' => ["tag patt$sign{_}er$sign{_}n"],
- '^t'=> ["untag pattern"],
- '+t'=> ["tag thread"],
- 'u' => ["undo delete"],
- 'U' => ["res$sign{_}tore pat$sign{_}t$sign{_}er$sign{_}n"],
- '^u'=> ["restore thread"],
- '+u'=> ["restore subthread"],
- 'v' => ["attach$sign{_}ments"],
- 'V' => ["version"],
- '+v'=> ["(un)collapse thread"],
- '+V'=> ["(un)collapse threads"],
- 'w' => ["set flag"],
- 'W' => ["clear flag"],
- 'x' => ["abort"],
- 'y' => ["list incoming mailboxes"],
+ 'a' => "create alias",
+ 'b' => "bounce",
+ '^b'=> "url<>view",
+ '+b'=> "search bodies",
+ 'c' => "open folder",
+ 'C' => "copy messag<>e",
+ '+c'=> "open reado<>nly",
+ '+C'=> "make plain copy",
+ 'd' => "delete",
+ 'D' => "delete patt<>er<>n",
+ '^d'=> "delete thread",
+ '+d'=> "delete subthread",
+ 'e' => "edit",
+ '^e'=> "edit con<>tent type",
+ '+e'=> "edit+send copy",
+ 'f' => "forward",
+ 'F' => "toggle important",
+ '^f'=> "forget pass<>phras<>e",
+ 'g' => "reply to all\nGroup reply",
+ 'G' => "fetch POP\nGather new mail",
+ 'h' => "toggle headers",
+ '^i'=> "unread msg <down>",
+ '+^i'=> "unread msg <up>",
+ 'j' => "messag<>e <down>",
+ 'k' => "messag<>e <up>",
+ 'J' => "any <down>",
+ 'K' => "any <up>",
+ '^k'=> "extract pub keys",
+ '+k'=> "send public key",
+ 'l' => "limit pattern",
+ 'L' => "reply to list",
+ '+l'=> "show current limit",
+ 'm' => "compo<>s<>e mail",
+ 'N' => "toggle new",
+ '^n'=> "thread <down>",
+ '+n'=> "subthr<>ead <down>",
+ 'o' => "sort",
+ 'O' => "sort reverse",
+ 'p' => "print",
+ 'P' => "to parent",
+ '^p'=> "thread <up>",
+ '+p'=> "subthr<>ead <up>",
+ '+P'=> "check for pgp",
+ 'q' => "quit",
+ 'Q' => "query addr<>ess<>es",
+ 'r' => "reply to sender",
+ 'R' => "recall postpon<>e<>d",
+ '^r'=> "mark thread read",
+ '+r'=> "mark sub<>thread r<>ead",
+ 's' => "move",
+ '+s'=> "save and delete",
+ 'T' => "tag patt<>er<>n",
+ '^t'=> "untag pattern",
+ '+t'=> "tag thread",
+ 'u' => "undo delete",
+ 'U' => "res<>tore pat<>t<>er<>n",
+ '^u'=> "restore thread",
+ '+u'=> "restore subthread",
+ 'v' => "attach<>ments",
+ 'V' => "version",
+ '+v'=> "(un)collapse thread",
+ '+V'=> "(un)collapse threads",
+ 'w' => "set flag",
+ 'W' => "clear flag",
+ 'x' => "abort",
+ 'y' => "list incoming mailboxes",
(map { 'm'.$_ => $common{$_} } keys %common),
- 'm|' => ["pipe attach$sign{_}m$sign{_}ent"],
- 'ma' => ["attach file"],
- 'mA' => ["attach messag$sign{_}e"],
- 'mb' => ["edit bcc"],
- 'mc' => ["edit cc"],
- 'mC' => ["copy file"],
- 'md' => ["desc$sign{_}ribe attach$sign{_}m$sign{_}ent"],
- 'mD' => ["delete attach$sign{_}m$sign{_}ent"],
- 'm^d'=> ["dispo$sign{_}sition tog$sign{_}gle"],
- 'me' => ["edit body"],
- 'mE' => ["edit all"],
- 'm^e'=> ["edit encoding"],
- 'mf' => ["edit fcc"],
- 'm^f'=> ["forget pass$sign{_}phrase"],
- 'm+f'=> ["edit from"],
- 'mF' => ["filter attach$sign{_}m$sign{_}ent"],
- 'mG' => ["get attach$sign{_}m$sign{_}ent"],
- 'mh' => ["display message"],
- 'mi' => ["run ispell"],
- 'ml' => ["print attach$sign{_}m$sign{_}ent"],
- 'mm' => ["edit attach$sign{_}m$sign{_}ent", 'Mime-appropriate open'],
- 'mM' => ["edit mix"],
- 'm^m'=> ["view attach$sign{_}m$sign{_}ent"],
- 'mn' => ["new attach$sign{_}m$sign{_}ent"],
- 'mP' => ["post$sign{_}pone"],
- 'mr' => ["edit reply$sign{_}-to"],
- 'mR' => ["rename attach$sign{_}m$sign{_}ent"],
- 'ms' => ["edit subject"],
- 'mS' => ["s/mime options"],
- 'mt' => ["edit to"],
- 'm^t'=> ["ctype attach$sign{_}m$sign{_}ent"],
- 'mw' => ["copy to folder"],
- 'mu' => ["unlink toggle"],
- 'mU' => ["encode attach$sign{_}m$sign{_}ent"],
- 'my' => ["send"],
+ 'm|' => "pipe attach<>m<>ent",
+ 'ma' => "attach file",
+ 'mA' => "attach messag<>e",
+ 'mb' => "edit bcc",
+ 'mc' => "edit cc",
+ 'mC' => "copy file",
+ 'md' => "desc<>ribe attach<>m<>ent",
+ 'mD' => "delete attach<>m<>ent",
+ 'm^d'=> "dispo<>sition tog<>gle",
+ 'me' => "edit body",
+ 'mE' => "edit all",
+ 'm^e'=> "edit encoding",
+ 'mf' => "edit fcc",
+ 'm^f'=> "forget pass<>phrase",
+ 'm+f'=> "edit from",
+ 'mF' => "filter attach<>m<>ent",
+ 'mG' => "get attach<>m<>ent",
+ 'mh' => "display message",
+ 'mi' => "run ispell",
+ 'ml' => "print attach<>m<>ent",
+ 'mm' => "edit attach<>m<>ent\nMime-appropriate open",
+ 'mM' => "edit mix",
+ 'm^m'=> "view attach<>m<>ent",
+ 'mn' => "new attach<>m<>ent",
+ 'mP' => "post<>pone",
+ 'mr' => "edit reply<>-to",
+ 'mR' => "rename attach<>m<>ent",
+ 'ms' => "edit subject",
+ 'mS' => "s/mime options",
+ 'mt' => "edit to",
+ 'm^t'=> "ctype attach<>m<>ent",
+ 'mw' => "copy to folder",
+ 'mu' => "unlink toggle",
+ 'mU' => "encode attach<>m<>ent",
+ 'my' => "send",
- 'wD' => ["deleted"],
- 'wN' => ["new"],
- 'wO' => ["old"],
- 'wr' => ["replied"],
- 'w*' => ["tagged"],
- 'w!' => ["flagged"],
+ 'wD' => "deleted",
+ 'wN' => "new",
+ 'wO' => "old",
+ 'wr' => "replied",
+ 'w*' => "tagged",
+ 'w!' => "flagged",
- '/~A' => ["all"],
- '/~b' => ["msg body"],
- '/~B' => ["whole msg"],
- '/~c' => ["cc address"],
- '/~C' => ["to or cc address"],
- '/~d' => ["date sent ran$sign{_}g$sign{_}e"],
- '/~D' => ["deleted"],
- '/~e' => ["sender"],
- '/~E' => ["expired"],
- '/~f' => ["from"],
- '/~F' => ["flagged"],
- '/~g' => ["signed"],
- '/~G' => ["encryp$sign{_}ted"],
- '/~h' => ["header"],
- '/~H' => ["spam attr$sign{_}ib$sign{_}ute"],
- '/~i' => ["msg id"],
- '/~k' => ["pgp key"],
- '/~L' => ["receiv$sign{_}d by"],
- '/~l' => ["mailing list"],
- '/~m' => ["num$sign{_}ber ran$sign{_}g$sign{_}e"],
- '/~n' => ["score range"],
- '/~N' => ["new"],
- '/~O' => ["old"],
- '/~p' => ["to you"],
- '/~P' => ["by you"],
- '/~Q' => ["replies"],
- '/~r' => ["receive date ran$sign{_}ge"],
- '/~R' => ["read"],
- '/~s' => ["subject"],
- '/~S' => ["super$sign{_}seded"],
- '/~t' => ["to address"],
- '/~T' => ["tagged"],
- '/~u' => ["subscr$sign{_}ibed list"],
- '/~U' => ["unread"],
- '/~v' => ["collapsed thread"],
- '/~V' => ["verified"],
- '/~x' => ["refer$sign{_}ence"],
- '/~X' => ["attach$sign{_}ments"],
- '/~y' => ["x-label"],
- '/~z' => ["size range"],
- '/~=' => ["dupli$sign{_}cate"],
- '/~$' => ["unrefer$sign{_}enced"],
- '/~(' => ["in thread"],
+ '/~A' => "all",
+ '/~b' => "msg body",
+ '/~B' => "whole msg",
+ '/~c' => "cc address",
+ '/~C' => "to or cc address",
+ '/~d' => "date sent ran<>g<>e",
+ '/~D' => "deleted",
+ '/~e' => "sender",
+ '/~E' => "expired",
+ '/~f' => "from",
+ '/~F' => "flagged",
+ '/~g' => "signed",
+ '/~G' => "encryp<>ted",
+ '/~h' => "header",
+ '/~H' => "spam attr<>ib<>ute",
+ '/~i' => "msg id",
+ '/~k' => "pgp key",
+ '/~L' => "receiv<>d by",
+ '/~l' => "mailing list",
+ '/~m' => "num<>ber ran<>g<>e",
+ '/~n' => "score range",
+ '/~N' => "new",
+ '/~O' => "old",
+ '/~p' => "to you",
+ '/~P' => "by you",
+ '/~Q' => "replies",
+ '/~r' => "receive date ran<>ge",
+ '/~R' => "read",
+ '/~s' => "subject",
+ '/~S' => "super<>seded",
+ '/~t' => "to address",
+ '/~T' => "tagged",
+ '/~u' => "subscr<>ibed list",
+ '/~U' => "unread",
+ '/~v' => "collapsed thread",
+ '/~V' => "verified",
+ '/~x' => "refer<>ence",
+ '/~X' => "attach<>ments",
+ '/~y' => "x-label",
+ '/~z' => "size range",
+ '/~=' => "dupli<>cate",
+ '/~$' => "unrefer<>enced",
+ '/~(' => "in thread",
+
+ # globally label escape as meta key
+ "\e"=> "+",
+ "m\e"=> "+",
+ "w\e"=> "+",
+ "/~\e"=> "+",
},
mode => {
},
flag => {
- ci => [aside => "Temporarily display something without changing state."],
- pm => [select => "Scroll list and/or select a different line."],
- po => [search => "Go to a specific message entry."],
- co => [edit => "Modify message flags or contents."],
- mi => [command => "Any other action which does not alter an existing message."],
- mo => [send => "Prepare and/or send a (new) message."],
- mv => [leave => "Exit the opened folder."],
- me => [display => "Permanently alter/toggle current view."],
+ g1 => [aside => "Temporarily display something without changing state."],
+ g2 => [select => "Scroll list and/or select a different line."],
+ g3 => [search => "Go to a specific message entry."],
+ g4 => [edit => "Modify message flags or contents."],
+ g6 => [command => "Any other action which does not alter an existing message."],
+ g7 => [send => "Prepare and/or send a (new) message."],
+ g8 => [leave => "Exit the opened folder."],
+ g9 => [display => "Permanently alter/toggle current view."],
- arg => ["key$sign{arg}" => "Commands with a dot need an argument afterwards."],
+ arg => ["key<arg>" => "Commands with a dot need an argument afterwards."],
},
}