keyboard: recombine translations in include syntax
[sheet.git] / keyboard / mutt.eng.inc.pl
index 4c94c09349a2af06d8afb51956217f1e09a003e3..bbafa6ddb655a1aca058f77db88fc41cdd759ce1 100644 (file)
@@ -1,61 +1,35 @@
 use utf8;
 
-my %commonkey = (
-       '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>",
-);
+my $esc = ['g9 mode', '+']; # globally label escape as meta key
 
 my %commondef = (
-       "\e"=> 'g9 mode',
+       "\e"=> $esc,
 
-       'H' => 'g2', # top-page
-       'j' => 'g2', # next-entry, next-undeleted
-       'k' => 'g2', # previous-entry, previous-undeleted
-       'L' => 'g2', # bottom-page
-       '^l'=> 'g1', # refresh
-       'M' => 'g2', # middle-page
-       '^m'=> 'g6 mode^m', # select-entry, display-message
-       'n' => 'g3', # search-next
-       'q' => 'g8 mode', # exit
-       't' => 'g4', # tag-entry
-       'z' => 'g2', # next-page
-       'Z' => 'g2', # previous-page
+       'H' => ['g2', "screen top"], # top-page
+       'j' => ['g2', "entry <down>"], # next-entry, next-undeleted
+       'k' => ['g2', "entry <up>"], # previous-entry, previous-undeleted
+       'L' => ['g2', "screen bottom"], # bottom-page
+       '^l'=> ['g1', "redraw"], # refresh
+       'M' => ['g2', "screen middle"], # middle-page
+       '^m'=> ['g6 mode^m', "select"], # select-entry, display-message
+       'n' => ['g3', "search <down>"], # search-next
+       'q' => ['g8 mode', "exit"], # exit
+       't' => ['g4', "tag"], # tag-entry
+       'z' => ['g2', "page <down>"], # next-page
+       'Z' => ['g2', "page <up>"], # previous-page
 
-       '*' => 'g2', # last-entry
-       '=' => 'g2', # first-entry
-       ':' => 'g6', # enter-command
-       ';' => 'g6 arg', # tag-prefix
-       '>' => 'g2', # next-line
-       '<' => 'g2', # previous-line
-       ']' => 'g2', # half-down
-       '[' => 'g2', # half-up
-       '?' => 'g1', # help
-       '!' => 'g1 arg', # shell
-       '/' => 'g3 arg mode/~', # search
-       '+/'=> 'g3 arg mode/~', # search
+       '*' => ['g2', "last entry"], # last-entry
+       '=' => ['g2', "first entry"], # first-entry
+       ':' => ['g6', "enter command"], # enter-command
+       ';' => ['g6 arg', "apply to tagged"], # tag-prefix
+       '>' => ['g2', "line <down>"], # next-line
+       '<' => ['g2', "line <up>"], # previous-line
+       ']' => ['g2', "half page <down>"], # half-down
+       '[' => ['g2', "half page <up>"], # half-up
+       '?' => ['g1', "help"], # help
+       '!' => ['g1 arg', "invoke shell"], # shell
+       '/' => ['g3 arg mode/~', "search <down>"], # search
+       '+/'=> ['g3 arg mode/~', "search <up>"], # search
 );
 
 {
@@ -67,199 +41,6 @@ description => [
 ],
 keywords => [qw' mutt MUA email client '],
 
-key => {
-       %commonkey,
-
-       '@' => "display sender",
-       '.' => "list new mail",
-       '|' => "pipe to shell",
-       '$' => "save mailbox",
-       '#' => "split up thread",
-       '&' => "thread tagged",
-       '%' => "toggle reado<>nl<>y",
-       '-' => "collapse thread",
-       '_' => "collapse all",
-       "'" => "marked mes<>sag<>e",
-       '~' => "save mark",
-
-       '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' => "fetch IMAP",
-       '^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'=> "mlist actions",
-       #'+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",
-       'Y' => "edit label",
-
-       (map { 'm'.$_ => $commonkey{$_} } keys %commonkey),
-
-       'm|' => "pipe attach<>m<>ent",
-       'ma' => "attach file",
-       'mA' => "attach messag<>e",
-       'm^b'=> "url<>view",
-       '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",
-       'm+k'=> "attach PGP key",
-       '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",
-       'mo' => "autocrypt toggle", #TODO
-       'm^o'=> "rename attach<>m<>ent",
-       'mp' => "PGP menu",
-       'mP' => "post<>pone",
-       'mr' => "edit reply<>-to",
-       'mR' => "rename attach<>m<>ent",
-       'ms' => "edit subject",
-       'mS' => "s/mime options",
-       'mt' => "edit to",
-       'mT' => "enter tags", #TODO
-       'm^t'=> "ctype attach<>m<>ent",
-       'mu' => "unlink toggle",
-       'mv' => "preview alt fil<>t<>er", # m+v mV
-       'mV' => "preview mailcap filter",
-       'mw' => "copy to folder",
-       'mU' => "encode attach<>m<>ent",
-       'my' => "send",
-       # ^xe
-
-       '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<>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",
-       '/~M' => "mime type",
-       '/~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",
-       '/~<' => "parent match",
-       '/~>' => "child match",
-
-       # globally label escape as meta key
-         "\e"=> "+",
-        "m\e"=> "+",
-        "w\e"=> "+",
-       "/~\e"=> "+",
-},
-
 mode => {
        '' => 'index',
        'm' => 'compose (m)',
@@ -284,200 +65,201 @@ def => {
        '' => {
                %commondef,
 
-               '@' => 'g1', # display-address
-               '.' => 'g8', # buffy-list #TODO
-               '|' => 'g6', # pipe-message
-               '$' => 'g4', # sync-mailbox
-               '#' => 'g4', # break-thread
-               '&' => 'g4', # link-threads
-               '%' => 'g4', # toggle-write
-               '-' => 'g9',
-               '_' => 'g9',
-               '~' => 'g4 arg', # mark-message #TODO
-               "'" => 'g3 arg',
-               ' ' => '=^m',
+               '@' => ['g1', "display sender"], # display-address
+               '.' => ['g8', "list new mail"], # buffy-list #TODO
+               '|' => ['g6', "pipe to shell"], # pipe-message
+               '$' => ['g4', "save mailbox"], # sync-mailbox
+               '#' => ['g4', "split up thread"], # break-thread
+               '&' => ['g4', "thread tagged"], # link-threads
+               '%' => ['g4', "toggle reado<>nl<>y"], # toggle-write
+               '-' => ['g9', "collapse thread"],
+               '_' => ['g9', "collapse all"],
+               '~' => ['g4 arg', "save mark"], # mark-message #TODO
+               "'" => ['g3 arg', "marked mes<>sag<>e"],
+               ' ' => \'^m',
 
-               'a' => 'g6', # create-alias
-               'b' => 'g7', # bounce-message
-               '^b'=> 'g1',
-               '+b'=> undef, # M <search>~b
-               'c' => 'g8', # change-folder
-               'C' => 'g6', # copy-message
-               '+c'=> 'g8', # change-folder-readonly
-               '+C'=> undef, # decode-copy
-               'd' => 'g4', # delete-message
-               'D' => 'g4 arg mode/~', # delete-pattern
-               '^d'=> 'g4', # delete-thread
-               '+d'=> 'g4', # delete-subthread
-               'e' => 'g4 linkvi', # edit
-               '^e'=> 'g4', # edit-type
-               '+e'=> undef, # resend-message
-               'f' => 'g7 modem', # forward-message
-               'F' => 'g4', # flag-message
-               '^f'=> 'g6', # forget-passphrase
-               'g' => 'g7 modem', # group-reply
-               'G' => 'g6', # fetch-mail
-               'h' => 'g9', # display-toggle-weed
-               'i' => 'g6', # imap-fetch-mail
-               '^i'=> 'g3', # next-new-then-unread
-               '+^i'=> undef, # previous-new-then-unread
-               'j' => 'g2', # next-undeleted
-               'k' => 'g2', # previous-undeleted
-               'J' => 'g3', # next-entry
-               'K' => 'g3', # previous-entry
-               '^k'=> 'g1', # extract-keys
-               '+k'=> 'g7 modem', # mail-key
-               'l' => 'g9 arg mode/~', # limit
-               'L' => 'g7 modem', # list-reply
-               '+l'=> 'g1', # list-actions/show-limit
-               'm' => 'g7 modem', # mail
-               'N' => 'g4', # toggle-new
-               '^n'=> 'g3', # next-thread
-               '+n'=> 'g3', # next-subthread
-               'o' => 'g9 modeo', # sort-mailbox
-               'O' => 'g9 modeo', # sort-reverse
-               'p' => 'g1', # print-message
-               'P' => 'g3', # parent-message
-               '^p'=> 'g3', # previous-thread
-               '+p'=> 'g3', # previous-subthread
-               '+P'=> undef, # check-traditional-pgp
-               'q' => 'g8', # quit
-               'Q' => 'g1 arg', # query
-               'r' => 'g7 modem', # reply
-               'R' => 'g7 modem', # recall-message
-               '^r'=> 'g4', # read-thread
-               '+r'=> 'g4', # read-subthread
-               's' => 'g4', # save-message
-               '+s'=> 'g4', # decode-save
-               'T' => 'g4 arg mode/~', # tag-pattern
-               '^t'=> 'g4 arg mode/~', # untag-pattern
-               '+t'=> 'g4', # tag-thread
-               'u' => 'g4', # undelete-message
-               'U' => 'g4 arg mode/~', # undelete-pattern
-               '^u'=> 'g4', # undelete-thread
-               '+u'=> 'g4', # undelete-subthread
-               'v' => 'g1', # view-attachments
-               'V' => 'g1', # show-version
-               '+v'=> 'g9', # collapse-thread
-               '+V'=> 'g9', # collapse-all
-               'w' => 'g4 arg modew', # set-flag
-               'W' => 'g4 arg modew', # clear-flag
-               'x' => 'g8', # exit
-               'y' => 'g8', # M <change-folder>?<toggle-mailboxes>
-               'Y' => 'g4 arg', # edit-label
+               'a' => ['g6', "create alias"], # create-alias
+               'b' => ['g7', "bounce"], # bounce-message
+               '^b'=> ['g1', "url<>view"],
+               '+b'=> [undef, "search bodies"], # M <search>~b
+               'c' => ['g8', "open folder"], # change-folder
+               'C' => ['g6', "copy messag<>e"], # copy-message
+               '+c'=> ['g8', "open reado<>nly"], # change-folder-readonly
+               '+C'=> [undef, "make plain copy"], # decode-copy
+               'd' => ['g4', "delete"], # delete-message
+               'D' => ['g4 arg mode/~', "delete patt<>er<>n"], # delete-pattern
+               '^d'=> ['g4', "delete thread"], # delete-thread
+               '+d'=> ['g4', "delete subthread"], # delete-subthread
+               'e' => ['g4 linkvi', "edit"], # edit
+               '^e'=> ['g4', "edit con<>tent type"], # edit-type
+               '+e'=> [undef, "edit+send copy"], # resend-message
+               'f' => ['g7 modem', "forward"], # forward-message
+               'F' => ['g4', "toggle important"], # flag-message
+               '^f'=> ['g6', "forget pass<>phras<>e"], # forget-passphrase
+               'g' => ['g7 modem', "reply to all\nGroup reply"], # group-reply
+               'G' => ['g6', "fetch POP\nGather new mail"], # fetch-mail
+               'i' => ['g6', "fetch IMAP"], # imap-fetch-mail
+               '^i'=> ['g3', "unread msg <down>"], # next-new-then-unread
+               '+^i'=> [undef, "unread msg <up>"], # previous-new-then-unread
+               'j' => ['g2', "messag<>e <down>"], # next-undeleted
+               'k' => ['g2', "messag<>e <up>"], # previous-undeleted
+               'J' => ['g3', "any <down>"], # next-entry
+               'K' => ['g3', "any <up>"], # previous-entry
+               '^k'=> ['g1', "extract pub keys"], # extract-keys
+               '+k'=> ['g7 modem', "send public key"], # mail-key
+               'l' => ['g9 arg mode/~', "limit pattern"], # limit
+               'L' => ['g7 modem', "reply to list"], # list-reply
+               '+l'=> ['g1', "mlist actions"], # list-actions/show-limit
+               #'+l'=> [, "show current limit"],
+               'm' => ['g7 modem', "compo<>s<>e mail"], # mail
+               'N' => ['g4', "toggle new"], # toggle-new
+               '^n'=> ['g3', "thread <down>"], # next-thread
+               '+n'=> ['g3', "subthr<>ead <down>"], # next-subthread
+               'o' => ['g9 modeo', "sort"], # sort-mailbox
+               'O' => ['g9 modeo', "sort reverse"], # sort-reverse
+               'p' => ['g1', "print"], # print-message
+               'P' => ['g3', "to parent"], # parent-message
+               '^p'=> ['g3', "thread <up>"], # previous-thread
+               '+p'=> ['g3', "subthr<>ead <up>"], # previous-subthread
+               '+P'=> [undef, "check for pgp"], # check-traditional-pgp
+               'q' => ['g8', "quit"], # quit
+               'Q' => ['g1 arg', "query addr<>ess<>es"], # query
+               'r' => ['g7 modem', "reply to sender"], # reply
+               'R' => ['g7 modem', "recall postpon<>e<>d"], # recall-message
+               '^r'=> ['g4', "mark thread read"], # read-thread
+               '+r'=> ['g4', "mark sub<>thread r<>ead"], # read-subthread
+               's' => ['g4', "move"], # save-message
+               '+s'=> ['g4', "save and delete"], # decode-save
+               'T' => ['g4 arg mode/~', "tag patt<>er<>n"], # tag-pattern
+               '^t'=> ['g4 arg mode/~', "untag pattern"], # untag-pattern
+               '+t'=> ['g4', "tag thread"], # tag-thread
+               'u' => ['g4', "undo delete"], # undelete-message
+               'U' => ['g4 arg mode/~', "res<>tore pat<>t<>er<>n"], # undelete-pattern
+               '^u'=> ['g4', "restore thread"], # undelete-thread
+               '+u'=> ['g4', "restore subthread"], # undelete-subthread
+               'v' => ['g1', "attach<>ments"], # view-attachments
+               'V' => ['g1', "version"], # show-version
+               '+v'=> ['g9', "(un)collapse thread"], # collapse-thread
+               '+V'=> ['g9', "(un)collapse threads"], # collapse-all
+               'w' => ['g4 arg modew', "set flag"], # set-flag
+               'W' => ['g4 arg modew', "clear flag"], # clear-flag
+               'x' => ['g8', "abort"], # exit
+               'y' => ['g8', "list incoming mailboxes"], # M <change-folder>?<toggle-mailboxes>
+               'Y' => ['g4 arg', "edit label"], # edit-label
        }, # index
 
        'm' => {
                %commondef,
 
-               '|' => 'g4',
-               'a' => 'g4',
-               'A' => 'g4',
-               'b' => 'g4',
-               '^b'=> 'g1',
-               'c' => 'g4',
-               'C' => 'g6',
-               'd' => 'g4',
-               'D' => 'g4',
-               '^d'=> 'g4',
-               'e' => 'g4 linkvi',
-               'E' => 'g4 linkvi',
-               '^e'=> 'g4',
-               'f' => 'g4',
-               '^f'=> 'g6',
-               '+f'=> 'g4',
-               'F' => 'g4',
-               'G' => 'g1',
-               'h' => 'g1',
-               'i' => 'g6',
-               '+k'=> 'g4',
-               'l' => 'g1',
-               'm' => 'g4',
-               'M' => 'g4',
-               '^m'=> 'g1',
-               'n' => 'g6',
-               'o' => 'g4 ext',
-               '^o'=> 'g4',
-               'p' => 'g1', #TODO
-               'P' => 'g8 mode',
-               'r' => 'g4',
-               'R' => 'g4',
-               's' => 'g4',
-               'S' => 'g4 menumS',
-               't' => 'g4',
-               'T' => 'g4',
-               '^t'=> 'g4',
-               'w' => 'g6',
-               'u' => 'g6',
-               'v' => 'g1',
+               '|' => ['g4', "pipe attach<>m<>ent"],
+               'a' => ['g4', "attach file"],
+               'A' => ['g4', "attach messag<>e"],
+               'b' => ['g4', "edit bcc"],
+               '^b'=> ['g1', "url<>view"],
+               'c' => ['g4', "edit cc"],
+               'C' => ['g6', "copy file"],
+               'd' => ['g4', "desc<>ribe attach<>m<>ent"],
+               'D' => ['g4', "delete attach<>m<>ent"],
+               '^d'=> ['g4', "dispo<>sition tog<>gle"],
+               'e' => ['g4 linkvi', "edit body"],
+               'E' => ['g4 linkvi', "edit all"],
+               '^e'=> ['g4', "edit encoding"],
+               'f' => ['g4', "edit fcc"],
+               '^f'=> ['g6', "forget pass<>phrase"],
+               '+f'=> ['g4', "edit from"],
+               'F' => ['g4', "filter attach<>m<>ent"],
+               'G' => ['g1', "get attach<>m<>ent"],
+               'h' => ['g1', "display message"],
+               'i' => ['g6', "run ispell"],
+               '+k'=> ['g4', "attach PGP key"],
+               'l' => ['g1', "print attach<>m<>ent"],
+               'm' => ['g4', "edit attach<>m<>ent\nMime-appropriate open"],
+               'M' => ['g4', "edit mix"],
+               '^m'=> ['g1', "view attach<>m<>ent"],
+               'n' => ['g6', "new attach<>m<>ent"],
+               'o' => ['g4 ext', "autocrypt toggle"], #TODO
+               '^o'=> ['g4', "rename attach<>m<>ent"],
+               'p' => ['g1', "PGP menu"], #TODO
+               'P' => ['g8 mode', "post<>pone"],
+               'r' => ['g4', "edit reply<>-to"],
+               'R' => ['g4', "rename attach<>m<>ent"],
+               's' => ['g4', "edit subject"],
+               'S' => ['g4 menumS', "s/mime options"],
+               't' => ['g4', "edit to"],
+               'T' => ['g4', "enter tags"], #TODO
+               '^t'=> ['g4', "ctype attach<>m<>ent"],
+               'w' => ['g6', "copy to folder"],
+               'u' => ['g6', "unlink toggle"],
+               'v' => ['g1', "preview alt fil<>t<>er"], # m+v mV
                '+v'=> 'g1',
-               'V' => 'g1',
-               'U' => 'g4',
-               'y' => 'g7',
+               'V' => ['g1', "preview mailcap filter"],
+               'U' => ['g4', "encode attach<>m<>ent"],
+               'y' => ['g7', "send"],
+               # ^xe
        }, # compose
 
        w => {
-               "\e"=> 'g9 mode',
-               'D' => 'g4',
-               'd' => '=wD',
-               'N' => 'g4',
-               'n' => '=wN',
-               'O' => 'g4',
-               'o' => '=wO',
-               'r' => 'g4',
-               'R' => '=wr',
-               '*' => 'g4',
-               '!' => 'g4',
+               "\e"=> $esc,
+               'D' => ['g4', "deleted"],
+               'd' => \'wD',
+               'N' => ['g4', "new"],
+               'n' => \'wN',
+               'O' => ['g4', "old"],
+               'o' => \'wO',
+               'r' => ['g4', "replied"],
+               'R' => \'wr',
+               '*' => ['g4', "tagged"],
+               '!' => ['g4', "flagged"],
        }, # flag
 
        '/~' => {
-               "\e"=> 'g9 mode',
-               A => 'g3',
-               b => 'g3 arg',
-               B => 'g3 arg',
-               c => 'g3 arg',
-               C => 'g3 arg',
-               d => 'g3 arg',
-               D => 'g3',
-               e => 'g3 arg',
-               E => 'g3',
-               f => 'g3 arg',
-               F => 'g3',
-               g => 'g3',
-               G => 'g3',
-               h => 'g3 arg',
-               H => 'g3 arg',
-               i => 'g3 arg',
-               k => 'g3',
-               L => 'g3 arg',
-               l => 'g3',
-               m => 'g3 arg',
-               M => 'g3 arg',
-               n => 'g3 arg',
-               N => 'g3',
-               O => 'g3',
-               p => 'g3',
-               P => 'g3',
-               Q => 'g3',
-               r => 'g3 arg',
-               R => 'g3',
-               s => 'g3',
-               S => 'g3',
-               t => 'g3 arg',
-               T => 'g3',
-               u => 'g3',
-               U => 'g3',
-               v => 'g3',
-               V => 'g3',
-               x => 'g3 arg',
-               X => 'g3 arg',
-               y => 'g3 arg',
-               z => 'g3 arg',
-               '=' => 'g3',
-               '$' => 'g3',
-               '(' => 'g3 arg',
-               '<' => 'g3 arg',
-               '>' => 'g3 arg',
+               "\e"=> $esc,
+               'A' => ['g3', => "all"],
+               'b' => ['g3 arg', => "msg body"],
+               'B' => ['g3 arg', => "whole msg"],
+               'c' => ['g3 arg', => "cc address"],
+               'C' => ['g3 arg', => "to or cc address"],
+               'd' => ['g3 arg', => "date sent ran<>g<>e"],
+               'D' => ['g3', => "deleted"],
+               'e' => ['g3 arg', => "sender"],
+               'E' => ['g3', => "expired"],
+               'f' => ['g3 arg', => "from"],
+               'F' => ['g3', => "flagged"],
+               'g' => ['g3', => "signed"],
+               'G' => ['g3', => "encryp<>ted"],
+               'h' => ['g3 arg', => "header"],
+               'H' => ['g3 arg', => "spam attr<>ib<>ute"],
+               'i' => ['g3 arg', => "msg id"],
+               'k' => ['g3', => "pgp key"],
+               'L' => ['g3 arg', => "receiv<>d by"],
+               'l' => ['g3', => "mailing list"],
+               'm' => ['g3 arg', => "num<>ber ran<>g<>e"],
+               'M' => ['g3 arg', => "mime type"],
+               'n' => ['g3 arg', => "score range"],
+               'N' => ['g3', => "new"],
+               'O' => ['g3', => "old"],
+               'p' => ['g3', => "to you"],
+               'P' => ['g3', => "by you"],
+               'Q' => ['g3', => "replies"],
+               'r' => ['g3 arg', => "receive date ran<>ge"],
+               'R' => ['g3', => "read"],
+               's' => ['g3', => "subject"],
+               'S' => ['g3', => "super<>seded"],
+               't' => ['g3 arg', => "to address"],
+               'T' => ['g3', => "tagged"],
+               'u' => ['g3', => "subscr<>ibed list"],
+               'U' => ['g3', => "unread"],
+               'v' => ['g3', => "collapsed thread"],
+               'V' => ['g3', => "verified"],
+               'x' => ['g3 arg', => "refer<>ence"],
+               'X' => ['g3 arg', => "attach<>ments"],
+               'y' => ['g3 arg', => "x-label"],
+               'z' => ['g3 arg', => "size range"],
+               '=' => ['g3', => "dupli<>cate"],
+               '$' => ['g3', => "unrefer<>enced"],
+               '(' => ['g3 arg', => "in thread"],
+               '<' => ['g3 arg', => "parent match"],
+               '>' => ['g3 arg', => "child match"],
        }, # search option
 },
 }