keys: store translation arrays as multiline string
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 13 May 2014 19:30:52 +0000 (21:30 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 13 May 2014 19:30:52 +0000 (21:30 +0200)
Arrays are needless complexity in most cases;
newlines are safe to use as note separator.

Shiar_Sheet/Keyboard.pm
less.eng.inc.pl
mplayer.eng.inc.pl
mutt.eng.inc.pl
nethack.eng.inc.pl
readline.eng.inc.pl
starcraft.eng.inc.pl
vi.eng.inc.pl
vimperator.eng.inc.pl

index adaa3dd..e8e33aa 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 no  warnings 'uninitialized';  # save some useless checks for more legible code
 use Carp;
 
-our $VERSION = 'v2.02';
+our $VERSION = 'v2.03';
 
 my @casedesc = (undef, qw/shift ctrl meta/, 'shift meta');
 my @rowdesc = qw(numeric top home bottom);
@@ -94,7 +94,7 @@ sub print_key {
        }
        my ($flags, $desc, $mnem) = @{$flags};
        if (my $txt = $self->{key}->{$mode.$key}) {
-               ($desc, $mnem) = @{$txt};
+               ($desc, $mnem) = split /\n/, $txt;
        }
 
 #      $key = $keytrans{$key} if defined $keytrans{$key};
index 99c0545..dbf0194 100644 (file)
@@ -2,105 +2,105 @@ use utf8;
 {
 
 key => {
-       'b' => ["page up"],
-       'd' => ['scroll down'],
-       'f' => ["page down"],
-       'F' => ["follow", 'Forward Forever'],
-       'g' => ["(first) line"],
-       'G' => ["last line"],
-       'h' => ["help"],
-       'j' => [$sign{down}],
-       'k' => [$sign{up}],
-       'm' => ["mark pos$sign{_}ition"],
-       'n' => ["next find"],
-       'N' => ["prev find"],
-       'p' => ["reset position", 'beginning or Percentage'],
-       'q' => ["quit"],
-       'r' => ["redraw"],
-       'R' => ["refresh"],
-       's' => ["save to file"],
-       't' => ["next tag"],
-       'T' => ["prev tag"],
-       'u' => ['scroll up'],
-       'v' => ["edit"],
-       'V' => ["version"],
-       'w' => ["page up and set window"],
-       '^x'=> ["emacs aliases"],
-       'z' => ["set page down"],
+       'b' => "page up",
+       'd' => 'scroll down',
+       'f' => "page down",
+       'F' => "follow\nForward Forever",
+       'g' => "(first) line",
+       'G' => "last line",
+       'h' => "help",
+       'j' => $sign{down},
+       'k' => $sign{up},
+       'm' => "mark pos$sign{_}ition",
+       'n' => "next find",
+       'N' => "prev find",
+       'p' => "reset position\nbeginning or Percentage",
+       'q' => "quit",
+       'r' => "redraw",
+       'R' => "refresh",
+       's' => "save to file",
+       't' => "next tag",
+       'T' => "prev tag",
+       'u' => 'scroll up',
+       'v' => "edit",
+       'V' => "version",
+       'w' => "page up and set window",
+       '^x'=> "emacs aliases",
+       'z' => "set page down",
 
-       '!' => ["shell command"],
-       '|' => ["pipe till mark"],
-       ':' => ["com$sign{_}mand"],
-       '/' => ["find"],
-       '?' => ["find rev."],
-       '&' => ["filter match$sign{_}es"],
-       "'" => ["goto mark"],
-       '-' => ["toggle option"],
-       '_' => ["show option"],
-       '=' => ["file name"],
-       '+' => ["initial cmd"],
+       '!' => "shell command",
+       '|' => "pipe till mark",
+       ':' => "com$sign{_}mand",
+       '/' => "find",
+       '?' => "find rev.",
+       '&' => "filter match$sign{_}es",
+       "'" => "goto mark",
+       '-' => "toggle option",
+       '_' => "show option",
+       '=' => "file name",
+       '+' => "initial cmd",
 
-       '(' => ["closing"],
+       '(' => "closing",
 
-       '^[n' => ["any next find"],
-       '^[N' => ["any prev find"],
-       '^[u' => ["mark search", 'Undo'],
-       '^[(' => ["scroll left"],
-       '^[)' => ["scroll right"],
+       '^[n' => "any next find",
+       '^[N' => "any prev find",
+       '^[u' => "mark search\nUndo",
+       '^[(' => "scroll left",
+       '^[)' => "scroll right",
 
-       ':d' => ["drop file"],
-       ':e' => ["open file"],
-       ':n' => ["next file"],
-       ':p' => ["prev file"],
-       ':x' => ["first file"],
+       ':d' => "drop file",
+       ':e' => "open file",
+       ':n' => "next file",
+       ':p' => "prev file",
+       ':x' => "first file",
 
-       '-a' => ["advance find page"],
-       '-b' => ["buffer space"],
-       '-B' => ["static buffer for pipes"],
-       '-c' => ["clear on scroll"],
-       '-d' => ["dumb term$sign{_}inal"],
-       '-D' => ["dos colours"],
-       '-e' => ["exit after eof"],
-       '-E' => ["exit at eof"],
-       '-f' => ["force open"],
-       '-F' => ["exit if 1 page"],
-       '-g' => ["hilight last match"],
-       '-h' => ["scroll back limit"],
-       '-i' => ["ignore lower$sign{_}c$sign{_}ase"],
-       '-I' => ["ignore case"],
-       '-j' => ["top offset"],
-       '-J' => ["status column"],
-       '-k' => ["key bind$sign{_}ing$sign{_}s"],
-       '-L' => [qq[ignore <span style="font-variant:small-caps">lesso$sign{_}pen</span> filter]],
-       '-m' => ["med. promp$sign{_}t tog$sign{_}gle"],
-       '-M' => ["long promp$sign{_}t tog$sign{_}gle"],
-       '-n' => ["count line num$sign{_}ber$sign{_}s"],
-       '-N' => ["show line n$sign{_}um$sign{_}ber$sign{_}s"],
-       '-o' => ["stdin to log"],
-       '-O' => ["log overwrite"],
-       '-p' => ["initial search"],
-       '-P' => ["status line", "Prompt"],
-       '-q' => ["no info bell", "Quiet"],
-       '-Q' => ["no warn bell", "Quiet!"],
-       '-r' => ["raw chars"],
-       '-R' => ["ansi chars"],
-       '-s' => ["squeeze blank lines"],
-       '-S' => ["no line wrap"],
-       '-t' => ["find tag"],
-       '-T' => ["tags file"],
-       '-u' => ['parse \b \r'],
-       '-U' => ['escape \t \b \r'],
-       '-w' => ["hilight page d$sign{_}own"],
-       '-W' => ["hilight forw$sign{_}ard"],
-       '-x' => ["tab stops"],
-       '-X' => ["no termcap init"],
-       '-y' => ["scroll limit fw$sign{_}d"],
-       '-z' => ["page size"],
-       '-"' => ["shell quotes"],
-       '-~' => ["outside tildes toggle"],
-       '-#' => ["col shift"],
-       '--' => ["option name"],
-       '-+' => ["reset option"],
+       '-a' => "advance find page",
+       '-b' => "buffer space",
+       '-B' => "static buffer for pipes",
+       '-c' => "clear on scroll",
+       '-d' => "dumb term$sign{_}inal",
+       '-D' => "dos colours",
+       '-e' => "exit after eof",
+       '-E' => "exit at eof",
+       '-f' => "force open",
+       '-F' => "exit if 1 page",
+       '-g' => "hilight last match",
+       '-h' => "scroll back limit",
+       '-i' => "ignore lower$sign{_}c$sign{_}ase",
+       '-I' => "ignore case",
+       '-j' => "top offset",
+       '-J' => "status column",
+       '-k' => "key bind$sign{_}ing$sign{_}s",
+       '-L' => qq[ignore <span style="font-variant:small-caps">lesso$sign{_}pen</span> filter],
+       '-m' => "med. promp$sign{_}t tog$sign{_}gle",
+       '-M' => "long promp$sign{_}t tog$sign{_}gle",
+       '-n' => "count line num$sign{_}ber$sign{_}s",
+       '-N' => "show line n$sign{_}um$sign{_}ber$sign{_}s",
+       '-o' => "stdin to log",
+       '-O' => "log overwrite",
+       '-p' => "initial search",
+       '-P' => "status line\nPrompt",
+       '-q' => "no info bell\nQuiet",
+       '-Q' => "no warn bell\nQuiet!",
+       '-r' => "raw chars",
+       '-R' => "ansi chars",
+       '-s' => "squeeze blank lines",
+       '-S' => "no line wrap",
+       '-t' => "find tag",
+       '-T' => "tags file",
+       '-u' => 'parse \b \r',
+       '-U' => 'escape \t \b \r',
+       '-w' => "hilight page d$sign{_}own",
+       '-W' => "hilight forw$sign{_}ard",
+       '-x' => "tab stops",
+       '-X' => "no termcap init",
+       '-y' => "scroll limit fw$sign{_}d",
+       '-z' => "page size",
+       '-"' => "shell quotes",
+       '-~' => "outside tildes toggle",
+       '-#' => "col shift",
+       '--' => "option name",
+       '-+' => "reset option",
 },
 
 mode => {
index 335c2a5..db884bf 100644 (file)
@@ -2,53 +2,53 @@ use utf8;
 {
 
 key => {
-       '[' => ["slow down 10%"],
-       ']' => ["speed up 10%"],
-       '{' => ["half speed"],
-       '}' => ["double speed"],
-       '<' => ["previous file"],
-       '>' => ["next file"],
-       'p' => ["pause"],
-       '.' => ["step forward"],
-       'q' => ["stop and quit"],
-       '+' => ["audio delay +$sign{_}.1s"],
-       '-' => ["audio delay -$sign{_}.1s"],
-       '/' => ["volume decrease"],
-       '*' => ["volume increase"],
-       'm' => ["mute sound"],
-       '#' => ["cycle audio tr$sign{_}ack$sign{_}s"],
-       'f' => ["full$sign{_}screen"],
-       'T' => ["stay on top"],
-       'w' => ["pan/sc. decr$sign{_}eas$sign{_}e"],
-       'e' => ["pan/scan increase"],
-       'o' => ["osd state switch"],
-       'd' => ["frame drop mode"],
-       'v' => ["subtitle visibility"],
-       'b' => ["next sub$sign{_}title"],
-       'j' => ["prev$sign{_}ious sub$sign{_}title"],
-       'g' => ["back in sub$sign{_}title$sign{_}s list"],
-       'y' => ["forward in sub$sign{_}title$sign{_}s list"],
-       'F' => ["forced subtitles"],
-       'a' => ["align subtitles"],
-       'c' => ["cycle fs mode"],
-       'n' => ["restore video mode"],
-       'x' => ["subtitle delay +$sign{_}.1$sign{_}s"],
-       'z' => ["subtitle delay -$sign{_}.1$sign{_}s"],
-       'r' => ["subtitles up"],
-       't' => ["subtitles down"],
-       's' => ["screen$sign{_}shot", "-vf screenshot"],
-       'S' => ["record screen$sign{_}shot$sign{_}s", "-vf screenshot"],
-       'I' => ["filename"],
-       '!' => ["chapter back"],
-       '@' => ["chapter forward"],
-       '1' => ["contrast less"],
-       '2' => ["contrast more"],
-       '3' => ["brighter"],
-       '4' => ["darker"],
-       '5' => ["hue to red"],
-       '6' => ["hue to blue"],
-       '7' => ["saturate"],
-       '8' => ["de$sign{_}saturate"],
+       '[' => "slow down 10%",
+       ']' => "speed up 10%",
+       '{' => "half speed",
+       '}' => "double speed",
+       '<' => "previous file",
+       '>' => "next file",
+       'p' => "pause",
+       '.' => "step forward",
+       'q' => "stop and quit",
+       '+' => "audio delay +$sign{_}.1s",
+       '-' => "audio delay -$sign{_}.1s",
+       '/' => "volume decrease",
+       '*' => "volume increase",
+       'm' => "mute sound",
+       '#' => "cycle audio tr$sign{_}ack$sign{_}s",
+       'f' => "full$sign{_}screen",
+       'T' => "stay on top",
+       'w' => "pan/sc. decr$sign{_}eas$sign{_}e",
+       'e' => "pan/scan increase",
+       'o' => "osd state switch",
+       'd' => "frame drop mode",
+       'v' => "subtitle visibility",
+       'b' => "next sub$sign{_}title",
+       'j' => "prev$sign{_}ious sub$sign{_}title",
+       'g' => "back in sub$sign{_}title$sign{_}s list",
+       'y' => "forward in sub$sign{_}title$sign{_}s list",
+       'F' => "forced subtitles",
+       'a' => "align subtitles",
+       'c' => "cycle fs mode",
+       'n' => "restore video mode",
+       'x' => "subtitle delay +$sign{_}.1$sign{_}s",
+       'z' => "subtitle delay -$sign{_}.1$sign{_}s",
+       'r' => "subtitles up",
+       't' => "subtitles down",
+       's' => "screen$sign{_}shot\n-vf screenshot",
+       'S' => "record screen$sign{_}shot$sign{_}s\n-vf screenshot",
+       'I' => "filename",
+       '!' => "chapter back",
+       '@' => "chapter forward",
+       '1' => "contrast less",
+       '2' => "contrast more",
+       '3' => "brighter",
+       '4' => "darker",
+       '5' => "hue to red",
+       '6' => "hue to blue",
+       '7' => "saturate",
+       '8' => "de$sign{_}saturate",
 },
 
 mode => {
index f12dce6..8e22c6a 100644 (file)
 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 $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}",
 );
 
 {
 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$sign{_}nl$sign{_}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$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\nGroup reply",
+       'G' => "fetch POP\nGather 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",
 
        (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$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\nMime-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",
 
-       '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$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",
 },
 
 mode => {
index e4ef3b3..8359f0c 100644 (file)
@@ -2,137 +2,137 @@ use utf8;
 {
 
 key => {
-       'b' => ["step left down",  'numpad 1'],
-       'j' => ["step down",       'numpad 2'],
-       'n' => ["step right down", 'numpad 3'],
-       'h' => ["step left",       'numpad 4'],
-       'l' => ["step right",      'numpad 6'],
-       'y' => ["step left up",    'numpad 7'],
-       'k' => ["step up",         'numpad 8'],
-       'u' => ["step right up",   'numpad 9'],
+       'b' =>   "step left down\nnumpad 1",
+       'j' =>        "step down\nnumpad 2",
+       'n' =>  "step right down\nnumpad 3",
+       'h' =>        "step left\nnumpad 4",
+       'l' =>       "step right\nnumpad 6",
+       'y' =>     "step left up\nnumpad 7",
+       'k' =>          "step up\nnumpad 8",
+       'u' =>    "step right up\nnumpad 9",
 
-       'B' => ["go left down",    'shift numpad 1'],
-       'J' => ["go down",         'shift numpad 2'],
-       'N' => ["go right down",   'shift numpad 3'],
-       'H' => ["go left",         'shift numpad 4'],
-       'L' => ["go right",        'shift numpad 6'],
-       'Y' => ["go left up",      'shift numpad 7'],
-       'K' => ["go up",           'shift numpad 8'],
-       'U' => ["go right up",     'shift numpad 9'],
+       'B' =>     "go left down\nshift numpad 1",
+       'J' =>          "go down\nshift numpad 2",
+       'N' =>    "go right down\nshift numpad 3",
+       'H' =>          "go left\nshift numpad 4",
+       'L' =>         "go right\nshift numpad 6",
+       'Y' =>       "go left up\nshift numpad 7",
+       'K' =>            "go up\nshift numpad 8",
+       'U' =>      "go right up\nshift numpad 9",
 
-       '^b'=> ["run left down",   'numpad 5 1'],
-       '^j'=> ["run down",        'numpad 5 2'],
-       '^n'=> ["run right down",  'numpad 5 3'],
-       '^h'=> ["run left",        'numpad 5 4'],
-       '^l'=> ["run right",       'numpad 5 6'],
-       '^y'=> ["run left up",     'numpad 5 7'],
-       '^k'=> ["run up",          'numpad 5 8'],
-       '^u'=> ["run right up",    'numpad 5 9'],
+       '^b'=>    "run left down\nnumpad 5 1",
+       '^j'=>         "run down\nnumpad 5 2",
+       '^n'=>   "run right down\nnumpad 5 3",
+       '^h'=>         "run left\nnumpad 5 4",
+       '^l'=>        "run right\nnumpad 5 6",
+       '^y'=>      "run left up\nnumpad 5 7",
+       '^k'=>           "run up\nnumpad 5 8",
+       '^u'=>     "run right up\nnumpad 5 9",
 
-       'g' => ["run until interest"],
-       'm' => ["m$sign{_}ove blind", 'no pickup'],
-       'G' => ["g any$sign{_}where", "follow branches"],
+       'g' => "run until interest",
+       'm' => "m$sign{_}ove blind\nno pickup",
+       'G' => "g any$sign{_}where\nfollow branches",
 
-       '?' => ["help menu"],
-       '+?'=> ["more help"],
-       '/' => ["explain symbol"],
-       '&' => ["tell com$sign{_}m$sign{_}and"],
-       '<' => ["climb up ladder"],
-       '>' => ["desc$sign{_}ent ladder"],
-       '.' => ["rest (noop)"],
-       '_' => ["travel to"],
+       '?' => "help menu",
+       '+?'=> "more help",
+       '/' => "explain symbol",
+       '&' => "tell com$sign{_}m$sign{_}and",
+       '<' => "climb up ladder",
+       '>' => "desc$sign{_}ent ladder",
+       '.' => "rest (noop)",
+       '_' => "travel to",
 
-       '+2'=> ["two$sign{_}weapon toggle"],
-       'a' => ["apply tool"],
-       'A' => ["remove all armor"],
-       '^a'=> ["redo comm$sign{_}and", 'Again'],
-       '+a'=> ["adjust inv$sign{_}ent$sign{_}ory"],
-       'c' => ["close door"],
-       'C' => ["call monster"],
-       '+c'=> ["chat"],
-       'd' => ["drop item"],
-       'D' => ["drop items"],
-       '^d'=> ["kick"],
-       '+d'=> ["dip"],
-       'e' => ["eat food"],
-       'E' => ["en$sign{_}grave"],
-       '+e'=> ["weapon skills", 'Enhance'],
-       'f' => ["fire quiver"],
-       'F' => ["fight monster"],
-       '+f'=> ["force lock"],
-       'i' => ["invent$sign{_}ory"],
-       'I' => ["invent$sign{_}ory part"],
-       '+i'=> ["invoke object"],
-       '+j'=> ["jump"],
-       '+l'=> ["loot"],
-       '+m'=> ["mons$sign{_}ter abil$sign{_}ity"],
-       '+n'=> ["name item$sign{_}(s)"],
-       'o' => ["open door"],
-       'O' => ["options"],
-       '+o'=> ["offer sacrifice"],
-       'p' => ["pay bill"],
-       'P' => ["put on"],
-       '^p'=> ["repeat message"],
-       '+p'=> ["pray"],
-       'q' => ["drink", 'Quaff'],
-       'Q' => ["quiver ammo"],
-       '+q'=> ["exit game", 'Quit'],
-       'r' => ["read scroll"],
-       'R' => ["put off", 'Remove accessory'],
-       '^r'=> ["redraw"],
-       '+r'=> ["rub object"],
-       's' => ["search secrets"],
-       'S' => ["save game"],
-       '+s'=> ["sit down"],
-       't' => ["throw$sign{_}/shoot"],
-       'T' => ["remove armor"],
-       '^t'=> ["teleport"],
-       '+t'=> ["turn undead"],
-       '+u'=> ["untrap"],
-       'v' => ["version"],
-       'V' => ["verbose version"],
-       '+v'=> ["compile details"],
-       'w' => ["wield weap$sign{_}on"],
-       'W' => ["wear armor"],
-       '+w'=> ["wipe face"],
-       'x' => ["swap weapons", 'Xchange'],
-       'X' => ["explore mode"],
-       '^x'=> ["show stats"],
-       'z' => ["zap wand"],
-       'Z' => ["cast spell"],
-       '^z'=> ["suspend game"],
+       '+2'=> "two$sign{_}weapon toggle",
+       'a' => "apply tool",
+       'A' => "remove all armor",
+       '^a'=> "redo comm$sign{_}and\nAgain",
+       '+a'=> "adjust inv$sign{_}ent$sign{_}ory",
+       'c' => "close door",
+       'C' => "call monster",
+       '+c'=> "chat",
+       'd' => "drop item",
+       'D' => "drop items",
+       '^d'=> "kick",
+       '+d'=> "dip",
+       'e' => "eat food",
+       'E' => "en$sign{_}grave",
+       '+e'=> "weapon skills\nEnhance",
+       'f' => "fire quiver",
+       'F' => "fight monster",
+       '+f'=> "force lock",
+       'i' => "invent$sign{_}ory",
+       'I' => "invent$sign{_}ory part",
+       '+i'=> "invoke object",
+       '+j'=> "jump",
+       '+l'=> "loot",
+       '+m'=> "mons$sign{_}ter abil$sign{_}ity",
+       '+n'=> "name item$sign{_}(s)",
+       'o' => "open door",
+       'O' => "options",
+       '+o'=> "offer sacrifice",
+       'p' => "pay bill",
+       'P' => "put on",
+       '^p'=> "repeat message",
+       '+p'=> "pray",
+       'q' => "drink\nQuaff",
+       'Q' => "quiver ammo",
+       '+q'=> "exit game\nQuit",
+       'r' => "read scroll",
+       'R' => "put off\nRemove accessory",
+       '^r'=> "redraw",
+       '+r'=> "rub object",
+       's' => "search secrets",
+       'S' => "save game",
+       '+s'=> "sit down",
+       't' => "throw$sign{_}/shoot",
+       'T' => "remove armor",
+       '^t'=> "teleport",
+       '+t'=> "turn undead",
+       '+u'=> "untrap",
+       'v' => "version",
+       'V' => "verbose version",
+       '+v'=> "compile details",
+       'w' => "wield weap$sign{_}on",
+       'W' => "wear armor",
+       '+w'=> "wipe face",
+       'x' => "swap weapons\nXchange",
+       'X' => "explore mode",
+       '^x'=> "show stats",
+       'z' => "zap wand",
+       'Z' => "cast spell",
+       '^z'=> "suspend game",
 
-       ':' => ["look here"],
-       ';' => ["look else$sign{_}where"],
-       ',' => ["pick up"],
-       '@' => ["toggle pick$sign{_}up"],
-       '^' => ["show trap"],
-       ')' => ["show weapon"],
-       '[' => ["show armor"],
-       '=' => ["show rings"],
-       '"' => ["show amulet"],
-       '(' => ["show tools"],
-       '*' => ["show equip$sign{_}ment"],
-       '$' => ["count gold"],
-       '+' => ["list spells"],
-       '\\'=> ["discover$sign{_}ed obj$sign{_}ects"],
-       '!' => ["shell escape"],
-       '#' => ["more comm$sign{_}ands"],
+       ':' => "look here",
+       ';' => "look else$sign{_}where",
+       ',' => "pick up",
+       '@' => "toggle pick$sign{_}up",
+       '^' => "show trap",
+       ')' => "show weapon",
+       '[' => "show armor",
+       '=' => "show rings",
+       '"' => "show amulet",
+       '(' => "show tools",
+       '*' => "show equip$sign{_}ment",
+       '$' => "count gold",
+       '+' => "list spells",
+       '\\'=> "discover$sign{_}ed obj$sign{_}ects",
+       '!' => "shell escape",
+       '#' => "more comm$sign{_}ands",
 
-       'DB' => ['drop blessed'],
-       'DU' => ['drop uncursed'],
-       'DC' => ['drop cursed'],
-       'DX' => ['drop unknown'],
-       'Da' => ['drop all'],
-       'Di' => ["invent$sign{_}ory"],
-       'Du' => ['drop unpaid'],
-       'Dm' => ['drop any'],
-       'D%' => ['drop more'],
+       'DB' => 'drop blessed',
+       'DU' => 'drop uncursed',
+       'DC' => 'drop cursed',
+       'DX' => 'drop unknown',
+       'Da' => 'drop all',
+       'Di' => "invent$sign{_}ory",
+       'Du' => 'drop unpaid',
+       'Dm' => 'drop any',
+       'D%' => 'drop more',
 
-       'I*' => ['list gems'],
-       'Iu' => ['list unpaid'],
-       'Ix' => ['list billed'],
-       'I$' => ['count money'],
+       'I*' => 'list gems',
+       'Iu' => 'list unpaid',
+       'Ix' => 'list billed',
+       'I$' => 'count money',
 },
 
 mode => {
index f5e9d87..f9f04e4 100644 (file)
@@ -2,82 +2,82 @@ use utf8;
 {
 
 key => {
-       '+<' => ["history start"],
-       '+>' => ["history end"],
-       '+?' => ["list complet$sign{_}ion$sign{_}s"],
-       '^@' => ["set mark"],
+       '+<' => "history start",
+       '+>' => "history end",
+       '+?' => "list complet$sign{_}ion$sign{_}s",
+       '^@' => "set mark",
 
-       '+#' => ["prefix comm$sign{_}en$sign{_}t"],
-       '+&' => ["tilde expand"],
-       '+*' => ["complet$sign{_}e all"],
-       '+.' => ["insert last"],
+       '+#' => "prefix comm$sign{_}en$sign{_}t",
+       '+&' => "tilde expand",
+       '+*' => "complet$sign{_}e all",
+       '+.' => "insert last",
 
-       '^[' => ["meta"],
-       '+\\'=> ["delete whitesp$sign{_}ace"],
-       '^]' => ["find char"],
-       '^+]'=> ["rev find char"],
-       '^_' => ["undo"],
+       '^[' => "meta",
+       '+\\'=> "delete whitesp$sign{_}ace",
+       '^]' => "find char",
+       '^+]'=> "rev find char",
+       '^_' => "undo",
 
-       '+~' => ["user$sign{_}name exp$sign{_}and"],
-       '+!' => ["cmd expand"],
-       '+@' => ["host$sign{_}name exp$sign{_}and"],
-       '+$' => ["variable expand"],
-       '+^' => ["history expand"],
-       '+/' => ["filename expand"],
+       '+~' => "user$sign{_}name exp$sign{_}and",
+       '+!' => "cmd expand",
+       '+@' => "host$sign{_}name exp$sign{_}and",
+       '+$' => "variable expand",
+       '+^' => "history expand",
+       '+/' => "filename expand",
 
-       '^a' => ["begin of line"],
-       '^b' => ["char back$sign{_}w$sign{_}ard$sign{_}s"],
-       '+b' => ["word back$sign{_}w$sign{_}ard$sign{_}s"],
-       '^c' => ["cancel comm$sign{_}and"],
-       '+c' => ["capital$sign{_}ise word"],
-       '^d' => ["delete char"],
-       '+d' => ["delete word rem$sign{_}ain$sign{_}der"],
-#      '^e' => ["emacs mode"],
-       '^e' => ["end of line"],
-       '^f' => ["char forward"],
-       '+f' => ["word forward"],
-       '^g' => ["abort cmd, bell"],
-       '^h' => ["back$sign{_}space"],
-       '^+h'=> ["delete bound word"],
-       '^i' => ["auto$sign{_}complet$sign{_}e", '(tab)'],
-       '^+j'=> ["vim mode"],
-       '^k' => ["delete till eol"],
-       '^l' => ["clear screen"],
-       '+l' => ["lowcase word"],
-       '^m' => ["enter line", '(enter)'],
-       '^n' => ["history next"],
-       '+n' => ["match history"],
-       '^o' => ["enter and next"],
-       '^p' => ["history back"],
-       '+p' => ["rev match history"],
-#      '^q' => [undef, 'Quote'],  #TODO fix partial override
-       '^r' => ["reverse history"],
-       '+r' => ["full undo", 'Revert'],
-       '^s' => ["search history"],
-       '^t' => ["move char forw$sign{_}ard", 'Transpose char'],
-       '+t' => ["move word forw$sign{_}ard", 'Transpose word'],
-       '^u' => ["delete till bol"], # unix
-       '+u' => ["upcase word"],
-       '^v' => ["verbat$sign{_}im char"],
-       '^w' => ["delete word"], # unix
-       '^x' => ["extend$sign{_}ed"],
-       '^y' => ["yank top"],
-       '+y' => ["rotate yank"],
-       '^+y'=> ["yank arg"],
-       '^z' => ["back$sign{_}ground"],
+       '^a' => "begin of line",
+       '^b' => "char back$sign{_}w$sign{_}ard$sign{_}s",
+       '+b' => "word back$sign{_}w$sign{_}ard$sign{_}s",
+       '^c' => "cancel comm$sign{_}and",
+       '+c' => "capital$sign{_}ise word",
+       '^d' => "delete char",
+       '+d' => "delete word rem$sign{_}ain$sign{_}der",
+#      '^e' => "emacs mode",
+       '^e' => "end of line",
+       '^f' => "char forward",
+       '+f' => "word forward",
+       '^g' => "abort cmd, bell",
+       '^h' => "back$sign{_}space",
+       '^+h'=> "delete bound word",
+       '^i' => "auto$sign{_}complet$sign{_}e\n(tab)",
+       '^+j'=> "vim mode",
+       '^k' => "delete till eol",
+       '^l' => "clear screen",
+       '+l' => "lowcase word",
+       '^m' => "enter line\n(enter)",
+       '^n' => "history next",
+       '+n' => "match history",
+       '^o' => "enter and next",
+       '^p' => "history back",
+       '+p' => "rev match history",
+#      '^q' => "\nQuote",  #TODO fix partial override
+       '^r' => "reverse history",
+       '+r' => "full undo\nRevert",
+       '^s' => "search history",
+       '^t' => "move char forw$sign{_}ard\nTranspose char",
+       '+t' => "move word forw$sign{_}ard\nTranspose word",
+       '^u' => "delete till bol", # unix
+       '+u' => "upcase word",
+       '^v' => "verbat$sign{_}im char",
+       '^w' => "delete word", # unix
+       '^x' => "extend$sign{_}ed",
+       '^y' => "yank top",
+       '+y' => "rotate yank",
+       '^+y'=> "yank arg",
+       '^z' => "back$sign{_}ground",
 
-       '^x('  => ["start macro"],
-       '^x)'  => ["end macro"],
-       '^xe'  => ["run macro", 'Execute'],
-       '^x^e' => ["editor"],
-       '^x^r' => ["reload inputrc"],
-       '^x^x' => ["swap cursor", 'eXchange'],
-       '^x^v' => ["shell version"],
+       '^x('  => "start macro",
+       '^x)'  => "end macro",
+       '^xe'  => "run macro\nExecute",
+       '^x^e' => "editor",
+       '^x^r' => "reload inputrc",
+       '^x^x' => "swap cursor\neXchange",
+       '^x^v' => "shell version",
 },
 
 mode => {
        ''   => "emacs mode",
-       '^x' => 'emacs ctrl-x bindings',
+       '^x' => "emacs ctrl-x bindings",
 },
 
 flag => {
index ae231ea..0dd96e3 100644 (file)
 use utf8;
 
 my %CONS = (
-       r => ["rally point"],
+       r => "rally point",
 );
 my %UNIT = (
-       m => ["move"],
-       s => ["stop"],
-       p => ["patrol"],
-       h => ["hold"],
-       a => ["attack"],
-       b => ["burrow"],
-       g => ["gather"],
-       c => ["return cargo"],
+       m => "move",
+       s => "stop",
+       p => "patrol",
+       h => "hold",
+       a => "attack",
+       b => "burrow",
+       g => "gather",
+       c => "return cargo",
 );
 
 {
 
 key => {
        (map { 'P'.$_ => $UNIT{$_} } qw'm s a g c'),
-       Pb => ["build structure"],
-       Pv => ["build adv$sign{_}anced structure"],
-
-       Pbn => ["nexus"],
-       Pbp => ["pylon"],
-       Pba => ["assimi$sign{_}lator"],
-       Pbg => ["gate$sign{_}way"],
-       Pbf => ["forge"],
-       Pbc => ["photon cannon"],
-       Pby => ["cyber$sign{_}netics core"],
-       Pbb => ["shield batt$sign{_}ery"],
+       Pb => "build structure",
+       Pv => "build adv$sign{_}anced structure",
+
+       Pbn => "nexus",
+       Pbp => "pylon",
+       Pba => "assimi$sign{_}lator",
+       Pbg => "gate$sign{_}way",
+       Pbf => "forge",
+       Pbc => "photon cannon",
+       Pby => "cyber$sign{_}netics core",
+       Pbb => "shield batt$sign{_}ery",
 
        (map { 'Pbn'.$_ => $CONS{$_} } 'r'),
-       Pbnp => ["probe"],
+       Pbnp => "probe",
 
        (map { 'Pbg'.$_ => $CONS{$_} } 'r'),
-       Pbgz => ["zealot"],
-       Pbgd => ["dragoon"],
-       Pbgt => ["high templar"],
-       Pbgk => ["dark templar"],
+       Pbgz => "zealot",
+       Pbgd => "dragoon",
+       Pbgt => "high templar",
+       Pbgk => "dark templar",
 
        (map { 'Pbgt'.$_ => $UNIT{$_} } qw'm s p h'),
-       t => ["psionic storm"],
-       l => ["halluci$sign{_}nation"],
-       r => ["archon warp"],
+       t => "psionic storm",
+       l => "halluci$sign{_}nation",
+       r => "archon warp",
 
        (map { 'Pbgk'.$_ => $UNIT{$_} } qw'm s p h a'),
-       Pbgkr => ["dark archon meld"],
+       Pbgkr => "dark archon meld",
 
        (map { 'Pbgkr'.$_ => $UNIT{$_} } qw'm s p h'),
-       Pbgkrf => ["feed$sign{_}back"],
-       Pbgkrc => ["mind control"],
-       Pbgkre => ["mael$sign{_}strom"],
+       Pbgkrf => "feed$sign{_}back",
+       Pbgkrc => "mind control",
+       Pbgkre => "mael$sign{_}strom",
 
-       Pbfw => ["ground weap$sign{_}on$sign{_}s"],
-       Pbfa => ["ground armor"],
-       Pbfs => ["plasma shields"],
+       Pbfw => "ground weap$sign{_}on$sign{_}s",
+       Pbfa => "ground armor",
+       Pbfs => "plasma shields",
 
-       Pbyw => ["air weap$sign{_}on$sign{_}s"],
-       Pbya => ["air armor"],
-       Pbys => ["dragoon range"],
+       Pbyw => "air weap$sign{_}on$sign{_}s",
+       Pbya => "air armor",
+       Pbys => "dragoon range",
 
-       Pbbr => ["recharge shields"],
+       Pbbr => "recharge shields",
 
-       Pvr => ["robotics facility"],
-       Pvs => ["stargate"],
-       Pvc => ["citadel of adun"],
-       Pvb => ["support bay"],
-       Pvf => ["fleet beacon"],
-       Pvt => ["templar archives"],
-       Pvo => ["observa$sign{_}tory"],
-       Pva => ["arbiter tribunal"],
+       Pvr => "robotics facility",
+       Pvs => "stargate",
+       Pvc => "citadel of adun",
+       Pvb => "support bay",
+       Pvf => "fleet beacon",
+       Pvt => "templar archives",
+       Pvo => "observa$sign{_}tory",
+       Pva => "arbiter tribunal",
 
        (map { 'Pvr'.$_ => $CONS{$_} } 'r'),
-       Pvrs => ["shuttle"],
-       Pvro => ["observer"],
-       Pvrv => ["reaver"],
+       Pvrs => "shuttle",
+       Pvro => "observer",
+       Pvrv => "reaver",
 
        (map { 'Pvrv'.$_ => $UNIT{$_} } qw'm s p h a'),
-       Pvrvr => ["scarab"],
+       Pvrvr => "scarab",
 
        (map { 'Pvs'.$_ => $CONS{$_} } 'r'),
-       Pvss => ["scout"],
-       Pvsc => ["carrier"],
-       Pvsa => ["arbiter"],
-       Pvso => ["corsair"],
+       Pvss => "scout",
+       Pvsc => "carrier",
+       Pvsa => "arbiter",
+       Pvso => "corsair",
 
        (map { 'Pvsc'.$_ => $UNIT{$_} } qw'm s p h a'),
-       Pvsci => ["inter$sign{_}ceptor"],
+       Pvsci => "inter$sign{_}ceptor",
 
        (map { 'Pvsa'.$_ => $UNIT{$_} } qw'm s p h a'),
-       Pvsar => ["recall"],
-       Pvsat => ["statis field"],
+       Pvsar => "recall",
+       Pvsat => "statis field",
 
        (map { 'Pvso'.$_ => $UNIT{$_} } qw'm s p h a'),
-       Pvsod => ["disrup$sign{_}tion web"],
+       Pvsod => "disrup$sign{_}tion web",
 
-       Pvcl => ["leg en$sign{_}hancem$sign{_}ent$sign{_}s"],
+       Pvcl => "leg en$sign{_}hancem$sign{_}ent$sign{_}s",
 
-       Pvbs => ["scarab damage"],
-       Pvbc => ["reaver capacity"],
-       Pvbg => ["gravitic drive"],
+       Pvbs => "scarab damage",
+       Pvbc => "reaver capacity",
+       Pvbg => "gravitic drive",
 
-       Pvfa => ["apial sensors"],
-       Pvfg => ["gravitic thrust$sign{_}ers"],
-       Pvfc => ["carrier capacity"],
-       Pvfd => ["disrup$sign{_}tion web"],
-       Pvfj => ["argus jewel"],
+       Pvfa => "apial sensors",
+       Pvfg => "gravitic thrust$sign{_}ers",
+       Pvfc => "carrier capacity",
+       Pvfd => "disrup$sign{_}tion web",
+       Pvfj => "argus jewel",
 
-       Pvtt => ["psionic storm"],
-       Pvth => ["halluci$sign{_}nation"],
-       Pvtk => ["khayda$sign{_}rin amul$sign{_}et"],
-#      Pvtc => ["mind control?"], #TODO
-       Pvte => ["mael$sign{_}strom"],
-       Pvtt => ["argus talisman"],
+       Pvtt => "psionic storm",
+       Pvth => "halluci$sign{_}nation",
+       Pvtk => "khayda$sign{_}rin amul$sign{_}et",
+#      Pvtc => "mind control?", #TODO
+       Pvte => "mael$sign{_}strom",
+       Pvtt => "argus talisman",
 
-       Pvog => ["gravitic booster"],
-       Pvos => ["sensor array"],
+       Pvog => "gravitic booster",
+       Pvos => "sensor array",
 
-       Pvar => ["recall"],
-       Pvas => ["stasis field"],
-       Pvak => ["khayda$sign{_}rin core"],
+       Pvar => "recall",
+       Pvas => "stasis field",
+       Pvak => "khayda$sign{_}rin core",
 
-       Zd => ["drone"],
-       Zz => ["zergling"],
-       Zo => ["overlord"],
-       Zh => ["hydra$sign{_}lisk"],
-       Zq => ["queen"],
+       Zd => "drone",
+       Zz => "zergling",
+       Zo => "overlord",
+       Zh => "hydra$sign{_}lisk",
+       Zq => "queen",
 
        (map { 'Zd'.$_ => $UNIT{$_} } qw'm s a g c b'),
-       Zdb => ["basic mutat$sign{_}ion"],
-       Zdv => ["advance$sign{_}d mutat$sign{_}ion"],
+       Zdb => "basic mutat$sign{_}ion",
+       Zdv => "advance$sign{_}d mutat$sign{_}ion",
 
-       Zdbh => ["hatche$sign{_}ry"],
-       Zdbc => ["creep colony"],
-       Zdbe => ["extrac$sign{_}tor"],
-       Zdbs => ["spawning pool"],
-       Zdbv => ["evolution chamber"],
-       Zdbd => ["hydra$sign{_}lisk den"],
+       Zdbh => "hatche$sign{_}ry",
+       Zdbc => "creep colony",
+       Zdbe => "extrac$sign{_}tor",
+       Zdbs => "spawning pool",
+       Zdbv => "evolution chamber",
+       Zdbd => "hydra$sign{_}lisk den",
 
        (map { 'Zdbh'.$_ => $CONS{$_} } 'r'),
-       Zdbhb => ["burrow"],
-       Zdbhs => ["select larvae"],
-       Zdbhl => ["lair"],
+       Zdbhb => "burrow",
+       Zdbhs => "select larvae",
+       Zdbhl => "lair",
 
        (map { 'Zdbhl'.$_ => $CONS{$_} } 'r'),
-       Zdbhlb => ["burrow"],
-       Zdbhlv => ["ventral sacs"],
-       Zdbhla => ["antennae"],
-       Zdbhlp => ["pneumatized carapace"],
-       Zdbhlh => ["hive"],
+       Zdbhlb => "burrow",
+       Zdbhlv => "ventral sacs",
+       Zdbhla => "antennae",
+       Zdbhlp => "pneumatized carapace",
+       Zdbhlh => "hive",
 
        (map { 'Zdbhlh'.$_ => $CONS{$_} } 'r'),
-       Zdbhlhb => ["burrow"],
-       Zdbhlhv => ["ventral sacs"],
-       Zdbhlha => ["antennae"],
-       Zdbhlhp => ["pneumatized carapace"],
-
-       Zdbsm => ["metabol boost"],
-       Zdbsa => ["adrenal glands"],
-
-       Zdbvm => ["melee attack$sign{_}s"],
-       Zdbva => ["missile attack$sign{_}s"],
-       Zdbvc => ["carapace"],
-       Zdbdm => ["muscular augments"],
-       Zdbdg => ["grooved spines"],
-       Zdbdl => ["lurker aspect"],
+       Zdbhlhb => "burrow",
+       Zdbhlhv => "ventral sacs",
+       Zdbhlha => "antennae",
+       Zdbhlhp => "pneumatized carapace",
+
+       Zdbsm => "metabol boost",
+       Zdbsa => "adrenal glands",
+
+       Zdbvm => "melee attack$sign{_}s",
+       Zdbva => "missile attack$sign{_}s",
+       Zdbvc => "carapace",
+       Zdbdm => "muscular augments",
+       Zdbdg => "grooved spines",
+       Zdbdl => "lurker aspect",
 },
 
 mode => {
index e219eb9..7dcca54 100644 (file)
@@ -3,442 +3,442 @@ use utf8;
 {
 key => {
 
-"\e"=> ["normal mode"],
-'~' => ["case toggle"],
-'!' => ["filt$sign{_}er lines"],
-'@' => ["play macro"],
-'#' => ["rev. find word"],
-'$' => ["eol"],
-'%' => ["goto match"],
-'^' => ['"soft" bol'],
-'&' => [":s rep$sign{_}eat"],
-'*' => ["find word"],
-'(' => ["begin senten$sign{_}ce"],
-')' => ["end senten$sign{_}ce"],
-'_' => ['"soft" bol down'],
-'+' => ["next line"],
-'`' => ["goto mark"],
-'0' => ['"hard" bol'],
-'^^'=> ["edit alt. file"],
-'-' => ["prev line"],
-'=' => ["re$sign{_}ind$sign{_}ent"],
-'?' => ["find rev."],
-';' => ["repeat t/f/T/F"],
-':' => ["ex cmd line"],
-"'" => ["goto mark bol"],
-'"' => ["use reg$sign{_}ister"],
-'\\' => ["reser$sign{_}ved"],
-'^\\' => ["to mode/$sign{_}ext$sign{_}ens$sign{_}ion$sign{_}s"],
-',' => ["reverse t/T/f/F"],
-'<' => ["un$sign{_}ind$sign{_}ent"],
-'.' => ["repeat last cmd"],
-'>' => ["ind$sign{_}ent"],
-'/' => ["find"],
-'[' => ["move back$sign{_}ward$sign{_}s"],
-'{' => ["begin parag."],
-']' => ["move forw$sign{_}ard"],
-'}' => ["end parag."],
-'^]'=> ["go to tag"],
-'|' => ["goto (1st) col"],
+"\e"=> "normal mode",
+'~' => "case toggle",
+'!' => "filt$sign{_}er lines",
+'@' => "play macro",
+'#' => "rev. find word",
+'$' => "eol",
+'%' => "goto match",
+'^' => '"soft" bol',
+'&' => ":s rep$sign{_}eat",
+'*' => "find word",
+'(' => "begin senten$sign{_}ce",
+')' => "end senten$sign{_}ce",
+'_' => '"soft" bol down',
+'+' => "next line",
+'`' => "goto mark",
+'0' => '"hard" bol',
+'^^'=> "edit alt. file",
+'-' => "prev line",
+'=' => "re$sign{_}ind$sign{_}ent",
+'?' => "find rev.",
+';' => "repeat t/f/T/F",
+':' => "ex cmd line",
+"'" => "goto mark bol",
+'"' => "use reg$sign{_}ister",
+'\\' => "reser$sign{_}ved",
+'^\\' => "to mode/$sign{_}ext$sign{_}ens$sign{_}ion$sign{_}s",
+',' => "reverse t/T/f/F",
+'<' => "un$sign{_}ind$sign{_}ent",
+'.' => "repeat last cmd",
+'>' => "ind$sign{_}ent",
+'/' => "find",
+'[' => "move back$sign{_}ward$sign{_}s",
+'{' => "begin parag.",
+']' => "move forw$sign{_}ard",
+'}' => "end parag.",
+'^]'=> "go to tag",
+'|' => "goto (1st) col",
 
-'a' => ["app$sign{_}end"],
-'A' => ["app$sign{_}end to eol"],
-'^a'=> ["incr$sign{_}ement", "Add one"],
-'b' => ["prev word", "Back"],
-'B' => ['prev <span style="font-variant:small-caps">word</span>'],
-'^b'=> ["page up"],
-'c' => ["chan$sign{_}ge"],
-'C' => ["chan$sign{_}ge to eol"],
-'^c'=> ["abort"],
-'d' => ["del$sign{_}ete"],
-'D' => ["delete to eol"],
-'^d'=> ["scroll down"],
-'e' => ["end word"],
-'E' => ['end <span style="font-variant:small-caps">word</span>'],
-'^e'=> ["window down", "Extra line"],
-'f' => ["fwd to char"],
-'F' => ["back$sign{_}wd to char"],
-'^f'=> ["page down", "page Forward"],
-'g' => ["extra cmds"],
-'G' => ["eof/$sign{_}goto ln"],
-'^g'=> [":file (info)"],
-'h' => [$sign{left}],
-'H' => ["screen top", 'Home row'],
-'i' => ["insert mode"],
-'I' => ["insert at bol"],
-'^i'=> ["jump to newer", 'Increase position'],
-'j' => [$sign{down}],
-'J' => ["join lines"],
-'k' => [$sign{up}],
-'K' => ["help", "looKup Keyword"],
-'l' => [$sign{right}],
-'L' => ["screen bottom", "Lowermost Line"],
-'^l'=> ["redraw"],
-'m' => ["set mark"],
-'M' => ["screen mid$sign{_}dle"],
-'n' => ["next find"],
-'N' => ["prev find"],
-'o' => ["line below", 'Open'],
-'O' => ["line above"],
-'^o'=> ["jump to older"],
-'p' => ["paste after"],
-'P' => ["paste before"],
-'q' => ["rec$sign{_}ord macro", "Queue seQuence"],
-'Q' => ["ex mode"],
-'^q'=> ["(xon)", 'Qome back'],
-'r' => ["repl$sign{_}ace char"],
-'R' => ["repl$sign{_}ace mode"],
-'^r'=> ["redo"],
-'s' => ["subst char"],
-'S' => ["subst line"],
-'^s'=> ["(xoff)", 'Stop'],
-'t' => ["till char"],
-'T' => ["back till char"],
-'^t'=> ["back tag"], # backtrag :P
-'u' => ["undo"],
-'U' => ["undo line"],
-'^u'=> ["scroll up"],
-'v' => ["visual mode"],
-'V' => ["visual lines"],
-'^v'=> ["visual block"],
-'w' => ["next word"],
-'W' => ['next <span style="font-variant:small-caps">word</span>'],
-'^w'=> ["win$sign{_}dow cmds"],
-'x' => ["delete char"],
-'X' => ["back$sign{_}space"],
-'^x'=> ["subs$sign{_}tract"],
-'y' => ["yank", '(copy)'],
-'Y' => ["yank line"],
-'^y'=> ["window up", 'Yield'],
-'z' => ["extra cmds"],
-'Z' => ["quit"],
-'^z'=> [":sus$sign{_}pend", 'zzz (as in sleep)'],
+'a' => "app$sign{_}end",
+'A' => "app$sign{_}end to eol",
+'^a'=> "incr$sign{_}ement\nAdd one",
+'b' => "prev word\nBack",
+'B' => 'prev <span style="font-variant:small-caps">word</span>',
+'^b'=> "page up",
+'c' => "chan$sign{_}ge",
+'C' => "chan$sign{_}ge to eol",
+'^c'=> "abort",
+'d' => "del$sign{_}ete",
+'D' => "delete to eol",
+'^d'=> "scroll down",
+'e' => "end word",
+'E' => 'end <span style="font-variant:small-caps">word</span>',
+'^e'=> "window down\nExtra line",
+'f' => "fwd to char",
+'F' => "back$sign{_}wd to char",
+'^f'=> "page down\npage Forward",
+'g' => "extra cmds",
+'G' => "eof/$sign{_}goto ln",
+'^g'=> ":file (info)",
+'h' => $sign{left},
+'H' => "screen top\nHome row",
+'i' => "insert mode",
+'I' => "insert at bol",
+'^i'=> "jump to newer\nIncrease position",
+'j' => $sign{down},
+'J' => "join lines",
+'k' => $sign{up},
+'K' => "help\nlooKup Keyword",
+'l' => $sign{right},
+'L' => "screen bottom\nLowermost Line",
+'^l'=> "redraw",
+'m' => "set mark",
+'M' => "screen mid$sign{_}dle",
+'n' => "next find",
+'N' => "prev find",
+'o' => "line below\nOpen",
+'O' => "line above",
+'^o'=> "jump to older",
+'p' => "paste after",
+'P' => "paste before",
+'q' => "rec$sign{_}ord macro\nQueue seQuence",
+'Q' => "ex mode",
+'^q'=> "(xon)\nQome back",
+'r' => "repl$sign{_}ace char",
+'R' => "repl$sign{_}ace mode",
+'^r'=> "redo",
+'s' => "subst char",
+'S' => "subst line",
+'^s'=> "(xoff)\nStop",
+'t' => "till char",
+'T' => "back till char",
+'^t'=> "back tag", # backtrag :P
+'u' => "undo",
+'U' => "undo line",
+'^u'=> "scroll up",
+'v' => "visual mode",
+'V' => "visual lines",
+'^v'=> "visual block",
+'w' => "next word",
+'W' => 'next <span style="font-variant:small-caps">word</span>',
+'^w'=> "win$sign{_}dow cmds",
+'x' => "delete char",
+'X' => "back$sign{_}space",
+'^x'=> "subs$sign{_}tract",
+'y' => "yank\n(copy)",
+'Y' => "yank line",
+'^y'=> "window up\nYield",
+'z' => "extra cmds",
+'Z' => "quit",
+'^z'=> ":sus$sign{_}pend\nzzz (as in sleep)",
 
-'g~' => ["case toggl$sign{_}e"],
-'g@' => ["oper$sign{_}at$sign{_}or$sign{_}func"],
-'g#' => ["rev. find string"],
-'g$' => ["virt$sign{_}ual eol"],
-'g^' => [qq'"soft" bol v$sign{_}irt$sign{_}ual'],
-'g&' => [":s rep$sign{_}eat glob$sign{_}al$sign{_}ly", "Global substitute"],
-'g*' => ["find string"],
-'g_' => [qq'"soft" eol'],
-'g+' => ["later undo"],
-'g`' => ["to mark keepj$sign{_}umps"],
-'g8' => ["char hex val$sign{_}ue$sign{_}s"],
-'g0' => ["virtual bol"],
-'g-' => ["earlier undo"],
-"g\e"=> ["normal mode"],
-'g]' => ["go to tselect"],
-'g^]'=> ["go to tjump"],
-'g;' => ["to prev change pos"],
-"g'" => ["to mark keepj$sign{_}umps"],
-'g<' => ["see prev cmd output"],
-'g?' => ["rot13 encode"],
-'g,' => ["to next change pos"],
+'g~' => "case toggl$sign{_}e",
+'g@' => "oper$sign{_}at$sign{_}or$sign{_}func",
+'g#' => "rev. find string",
+'g$' => "virt$sign{_}ual eol",
+'g^' => qq'"soft" bol v$sign{_}irt$sign{_}ual',
+'g&' => ":s rep$sign{_}eat glob$sign{_}al$sign{_}ly\nGlobal substitute",
+'g*' => "find string",
+'g_' => qq'"soft" eol',
+'g+' => "later undo",
+'g`' => "to mark keepj$sign{_}umps",
+'g8' => "char hex val$sign{_}ue$sign{_}s",
+'g0' => "virtual bol",
+'g-' => "earlier undo",
+"g\e"=> "normal mode",
+'g]' => "go to tselect",
+'g^]'=> "go to tjump",
+'g;' => "to prev change pos",
+"g'" => "to mark keepj$sign{_}umps",
+'g<' => "see prev cmd output",
+'g?' => "rot13 encode",
+'g,' => "to next change pos",
 
-'ga' => ["char value", "Get Ascii value"],
-'g^a'=> ["mem usage stats"],
-'gd' => ["local declar$sign{_}ation"],
-'gD' => ["global declar$sign{_}ation"],
-'ge' => ["back to word end"],
-'gE' => [qq'back to <span style="font-variant:small-caps">word</span> end'],
-'gf' => ["edit file at cur$sign{_}sor", "Goto File"],
-'gF' => ["edit file + jump"],
-'gg' => ["first line"],
-'g^g'=> ["cur$sign{_}sor pos info"],
-'gh' => ["select mode", "Get Highlighted"],
-'gH' => ["select lines", "Get Highlighted"],
-'g^h'=> ["select block", "Get Highlighted"],
-'gi' => ["insert at last pos"],
-'gI' => ["insert at soft bol"],
-'gj' => ["$sign{down} screen"],
-'gJ' => ["join leave spac$sign{_}ing"],
-'gk' => ["$sign{up} screen"],
-'gm' => ["cen$sign{_}ter screen"],
-'go' => [":goto (byte)"],
-'gp' => ["paste still"],
-'gP' => ["paste before still"],
-'gq' => ["for$sign{_}mat"],
-'gQ' => ["ex mode manual :"],
-'gr' => ["virt. repl$sign{_}ace char"],
-'gR' => ["virt. repl$sign{_}ace mode"],
-'gs' => ["sleep", "Go to Sleep"],
-'gt' => ["next tab", "Goto Tab"],
-'gT' => ["tab back"],
-'gu' => ["lower$sign{_}case"],
-'gU' => ["up$sign{_}per$sign{_}case"],
-'gv' => ["prev$sign{_}ious highl$sign{_}ight", 'precedinG Visual'],
-'gV' => ["avoid resel$sign{_}ect$sign{_}ion"],
-'gw' => ["for$sign{_}mat still"],
-'gx' => ["Netrw$sign{_}BrowseX"],
+'ga' => "char value\nGet Ascii value",
+'g^a'=> "mem usage stats",
+'gd' => "local declar$sign{_}ation",
+'gD' => "global declar$sign{_}ation",
+'ge' => "back to word end",
+'gE' => qq'back to <span style="font-variant:small-caps">word</span> end',
+'gf' => "edit file at cur$sign{_}sor\nGoto File",
+'gF' => "edit file + jump",
+'gg' => "first line",
+'g^g'=> "cur$sign{_}sor pos info",
+'gh' => "select mode\nGet Highlighted",
+'gH' => "select lines\nGet Highlighted",
+'g^h'=> "select block\nGet Highlighted",
+'gi' => "insert at last pos",
+'gI' => "insert at soft bol",
+'gj' => "$sign{down} screen",
+'gJ' => "join leave spac$sign{_}ing",
+'gk' => "$sign{up} screen",
+'gm' => "cen$sign{_}ter screen",
+'go' => ":goto (byte)",
+'gp' => "paste still",
+'gP' => "paste before still",
+'gq' => "for$sign{_}mat",
+'gQ' => "ex mode manual :",
+'gr' => "virt. repl$sign{_}ace char",
+'gR' => "virt. repl$sign{_}ace mode",
+'gs' => "sleep\nGo to Sleep",
+'gt' => "next tab\nGoto Tab",
+'gT' => "tab back",
+'gu' => "lower$sign{_}case",
+'gU' => "up$sign{_}per$sign{_}case",
+'gv' => "prev$sign{_}ious highl$sign{_}ight\nprecedinG Visual",
+'gV' => "avoid resel$sign{_}ect$sign{_}ion",
+'gw' => "for$sign{_}mat still",
+'gx' => "Netrw$sign{_}BrowseX",
 
-"Z\e"=> ["normal mode"],
-'ZQ' => [" :q! (force)"],
-'ZZ' => [" :wq (write)"],
+"Z\e"=> "normal mode",
+'ZQ' => " :q! (force)",
+'ZZ' => " :wq (write)",
 
-'z^' => ["page above"],
-'z+' => ["page below"],
-'z-' => ["line at bottom bol", "don't (-) see any further"],
-'z=' => ["sug$sign{_}gest spell$sign{_}ing"],
-'z.' => ["line at center bol"],
-"z\e"=> ["normal mode"],
+'z^' => "page above",
+'z+' => "page below",
+'z-' => "line at bottom bol\ndon't (-) see any further",
+'z=' => "sug$sign{_}gest spell$sign{_}ing",
+'z.' => "line at center bol",
+"z\e"=> "normal mode",
 
-'za' => ["toggle fold"],
-'zA' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly"],
-'zb' => ["line at bot. bol"],
-'zc' => ["close fold"],
-'zC' => ["close folds rec$sign{_}curs$sign{_}ive$sign{_}ly"],
-'zd' => ["delete fold"],
-'zD' => ["delete folds rec$sign{_}urs$sign{_}ive"],
-'ze' => ["cursor at right side"],
-'zE' => ["elimi$sign{_}nate f$sign{_}olds"],
-'zf' => ["create fold"],
-'zF' => ["fold lines"],
-'zg' => ["add spell$sign{_}ing", 'Good word'],
-'zG' => ["temp spell$sign{_}ing"],
-'zh' => ["scroll $sign{left}"],
-'zH' => ["scroll $sign{left} half scr$sign{_}een"],
-'zi' => ["toggle all folds"],
-'zj' => ["next fold start"],
-'zk' => ["prev fold end"],
-'zl' => ["scroll $sign{right}"],
-'zL' => ["scroll $sign{right} half scr$sign{_}een"],
-'z^m'=> ["line at top bol"],
-'zm' => ["fold more"],
-'zM' => ["close all folds"],
-'zn' => ["fold none"],
-'zN' => ["fold norm$sign{_}al"],
-'zo' => ["open fold"],
-'zO' => ["open folds rec$sign{_}urs$sign{_}ive$sign{_}ly"],
-'zr' => ["reduce folding"],
-'zR' => ["open all folds"],
-'zs' => ["cursor at left side"],
-'zt' => ["line at top"],
-'zu' => ["undo spell$sign{_}ing"],
-'zv' => ["unfold cursor line"],
-'zw' => ["add missp$sign{_}ell$sign{_}ing", "Wrong word"],
-'zW' => ["temp missp$sign{_}ell$sign{_}ing"],
-'zx' => ["update folds"],
-'zX' => ["re$sign{_}apply f$sign{_}olds"],
-'zz' => ["line at center", "Zee Zenter (with a funny accent)"],
+'za' => "toggle fold",
+'zA' => "toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly",
+'zb' => "line at bot. bol",
+'zc' => "close fold",
+'zC' => "close folds rec$sign{_}curs$sign{_}ive$sign{_}ly",
+'zd' => "delete fold",
+'zD' => "delete folds rec$sign{_}urs$sign{_}ive",
+'ze' => "cursor at right side",
+'zE' => "elimi$sign{_}nate f$sign{_}olds",
+'zf' => "create fold",
+'zF' => "fold lines",
+'zg' => "add spell$sign{_}ing\nGood word",
+'zG' => "temp spell$sign{_}ing",
+'zh' => "scroll $sign{left}",
+'zH' => "scroll $sign{left} half scr$sign{_}een",
+'zi' => "toggle all folds",
+'zj' => "next fold start",
+'zk' => "prev fold end",
+'zl' => "scroll $sign{right}",
+'zL' => "scroll $sign{right} half scr$sign{_}een",
+'z^m'=> "line at top bol",
+'zm' => "fold more",
+'zM' => "close all folds",
+'zn' => "fold none",
+'zN' => "fold norm$sign{_}al",
+'zo' => "open fold",
+'zO' => "open folds rec$sign{_}urs$sign{_}ive$sign{_}ly",
+'zr' => "reduce folding",
+'zR' => "open all folds",
+'zs' => "cursor at left side",
+'zt' => "line at top",
+'zu' => "undo spell$sign{_}ing",
+'zv' => "unfold cursor line",
+'zw' => "add missp$sign{_}ell$sign{_}ing\nWrong word",
+'zW' => "temp missp$sign{_}ell$sign{_}ing",
+'zx' => "update folds",
+'zX' => "re$sign{_}apply f$sign{_}olds",
+'zz' => "line at center\nZee Zenter (with a funny accent)",
 
-"[`" => ["previous lc mark"],
-'[#' => ["previous open #if$sign{_}/#else"],
-'[(' => ["previous open ("],
-'[/' => ["start of C com$sign{_}m$sign{_}ent"],
-'[{' => ["previous open {"],
-'[[' => ["section back$sign{_}ward$sign{_}s"],
-"[\e"=> ["normal mode"],
-'[]' => [qq'<span style="font-variant:small-caps">section</span> back$sign{_}ward$sign{_}s'],
+"[`" => "previous lc mark",
+'[#' => "previous open #if$sign{_}/#else",
+'[(' => "previous open (",
+'[/' => "start of C com$sign{_}m$sign{_}ent",
+'[{' => "previous open {",
+'[[' => "section back$sign{_}ward$sign{_}s",
+"[\e"=> "normal mode",
+'[]' => qq'<span style="font-variant:small-caps">section</span> back$sign{_}ward$sign{_}s',
 
-'[c' => ["start of change backw$sign{_}ards"],
-'[d' => ["define line"],
-'[D' => ["defin$sign{_}ition"],
-'[^d'=> ["to defin$sign{_}it$sign{_}ion"],
-'[i' => ["first occur$sign{_}renc$sign{_}e line"],
-'[I' => ["first occur$sign{_}renc$sign{_}e"],
-'[^i'=> ["to first occur$sign{_}renc$sign{_}e"],
-'[m' => ["start of funct$sign{_}ion"],
-'[p' => ["P reind$sign{_}ent$sign{_}ed"],
-'[P' => ["[p"],
-'[s' => ["last missp$sign{_}ell$sign{_}ing"],
-'[S' => ["last bad word"],
-'[z' => ["start of open fold"],
+'[c' => "start of change backw$sign{_}ards",
+'[d' => "define line",
+'[D' => "defin$sign{_}ition",
+'[^d'=> "to defin$sign{_}it$sign{_}ion",
+'[i' => "first occur$sign{_}renc$sign{_}e line",
+'[I' => "first occur$sign{_}renc$sign{_}e",
+'[^i'=> "to first occur$sign{_}renc$sign{_}e",
+'[m' => "start of funct$sign{_}ion",
+'[p' => "P reind$sign{_}ent$sign{_}ed",
+'[P' => "[p",
+'[s' => "last missp$sign{_}ell$sign{_}ing",
+'[S' => "last bad word",
+'[z' => "start of open fold",
 
-"]`" => ["next lc mark"],
-']#' => ["next open #endif$sign{_}/#else"],
-'])' => ["next open )"],
-']/' => ["end of C com$sign{_}m$sign{_}ent"],
-'][' => [qq'<span style="font-variant:small-caps">section</span> forw$sign{_}ard'],
-"]\e"=> ["normal mode"],
-']]' => ["section forw$sign{_}ard"],
-']}' => ["next open }"],
+"]`" => "next lc mark",
+']#' => "next open #endif$sign{_}/#else",
+'])' => "next open )",
+']/' => "end of C com$sign{_}m$sign{_}ent",
+'][' => qq'<span style="font-variant:small-caps">section</span> forw$sign{_}ard',
+"]\e"=> "normal mode",
+']]' => "section forw$sign{_}ard",
+']}' => "next open }",
 
-']c' => ["start of change forw$sign{_}ards"],
-']d' => ["next define line"],
-']D' => ["next define"],
-']^d'=> ["to next define"],
-']i' => ["next occur$sign{_}renc$sign{_}e line"],
-']I' => ["next occur$sign{_}renc$sign{_}e"],
-']^i'=> ["to occur$sign{_}renc$sign{_}e"],
-']m' => ["end of funct$sign{_}ion"],
-']p' => ["p reind$sign{_}ent$sign{_}ed"],
-']s' => ["next missp$sign{_}ell$sign{_}ing"],
-']S' => ["next bad word"],
-']z' => ["end of open fold"],
+']c' => "start of change forw$sign{_}ards",
+']d' => "next define line",
+']D' => "next define",
+']^d'=> "to next define",
+']i' => "next occur$sign{_}renc$sign{_}e line",
+']I' => "next occur$sign{_}renc$sign{_}e",
+']^i'=> "to occur$sign{_}renc$sign{_}e",
+']m' => "end of funct$sign{_}ion",
+']p' => "p reind$sign{_}ent$sign{_}ed",
+']s' => "next missp$sign{_}ell$sign{_}ing",
+']S' => "next bad word",
+']z' => "end of open fold",
 
-'^w<' => ["width decr$sign{_}ease"],
-'^w>' => ["width incr$sign{_}ease"],
-'^w^' => ["split, edit alt file"],
-'^w_' => ["set height"],
-'^w+' => ["height incr$sign{_}ease"],
-'^w-' => ["height decr$sign{_}ease"],
-'^w=' => ["same height"],
-"^w\e"=> ["normal mode"],
-'^w]' => ["split, to tag"],
-'^w}' => ["pre$sign{_}view tag"],
-'^w|' => ["set width"],
+'^w<' => "width decr$sign{_}ease",
+'^w>' => "width incr$sign{_}ease",
+'^w^' => "split, edit alt file",
+'^w_' => "set height",
+'^w+' => "height incr$sign{_}ease",
+'^w-' => "height decr$sign{_}ease",
+'^w=' => "same height",
+"^w\e"=> "normal mode",
+'^w]' => "split, to tag",
+'^w}' => "pre$sign{_}view tag",
+'^w|' => "set width",
 
-'^wb' => ["go to bot$sign{_}tom"],
-'^wc' => [":close"],
-'^w^c'=> ["abort"],
-'^wd' => ["split, to def$sign{_}inition"],
-'^wf' => ["split, file edit"],
-'^wF' => ["^wf, jump to line"],
-'^wg' => ["extra cmds"],
-'^wh' => ["go left"],
-'^wH' => ["move far left"],
-'^wi' => ["split, to decl of id$sign{_}ent$sign{_}ifier"],
-'^wj' => ["go down"],
-'^wJ' => ["move to bottom"],
-'^wk' => ["go up"],
-'^wK' => ["move to top"],
-'^wl' => ["go right"],
-'^wL' => ["move far right"],
-'^wn' => ["open new"],
-'^wo' => [":only current"],
-'^wp' => ["go to prev$sign{_}ious"],
-'^wP' => ["go to pre$sign{_}view"],
-'^wq' => [":quit current"],
-'^wr' => ["rotate down$sign{_}ward$sign{_}s"],
-'^wR' => ["rotate up$sign{_}ward$sign{_}s"],
-'^ws' => ["split horiz$sign{_}ont$sign{_}al$sign{_}ly"],
-'^wt' => ["go to top"],
-'^wv' => ["split vert$sign{_}ic$sign{_}al$sign{_}ly"],
-'^ww' => ["go to next", "Wrap around"],
-'^wW' => ["go above$sign{_}/left"],
-'^wx' => ["ex$sign{_}chan$sign{_}ge"],
-'^wz' => ["close pre$sign{_}view"],
+'^wb' => "go to bot$sign{_}tom",
+'^wc' => ":close",
+'^w^c'=> "abort",
+'^wd' => "split, to def$sign{_}inition",
+'^wf' => "split, file edit",
+'^wF' => "^wf, jump to line",
+'^wg' => "extra cmds",
+'^wh' => "go left",
+'^wH' => "move far left",
+'^wi' => "split, to decl of id$sign{_}ent$sign{_}ifier",
+'^wj' => "go down",
+'^wJ' => "move to bottom",
+'^wk' => "go up",
+'^wK' => "move to top",
+'^wl' => "go right",
+'^wL' => "move far right",
+'^wn' => "open new",
+'^wo' => ":only current",
+'^wp' => "go to prev$sign{_}ious",
+'^wP' => "go to pre$sign{_}view",
+'^wq' => ":quit current",
+'^wr' => "rotate down$sign{_}ward$sign{_}s",
+'^wR' => "rotate up$sign{_}ward$sign{_}s",
+'^ws' => "split horiz$sign{_}ont$sign{_}al$sign{_}ly",
+'^wt' => "go to top",
+'^wv' => "split vert$sign{_}ic$sign{_}al$sign{_}ly",
+'^ww' => "go to next\nWrap around",
+'^wW' => "go above$sign{_}/left",
+'^wx' => "ex$sign{_}chan$sign{_}ge",
+'^wz' => "close pre$sign{_}view",
 
-"^wg\e"=> ["normal mode"],
-'^wg]' => ["split, :ts$sign{_}elect"],
-'^wg}' => [":ptj$sign{_}ump to tag"],
-'^wg^]'=> ["split, :tj$sign{_}ump"],
-'^wgf' => ["file in tab"],
-'^wgF' => ["^wgf, to line$sign{_}nr"],
+"^wg\e"=> "normal mode",
+'^wg]' => "split, :ts$sign{_}elect",
+'^wg}' => ":ptj$sign{_}ump to tag",
+'^wg^]'=> "split, :tj$sign{_}ump",
+'^wgf' => "file in tab",
+'^wgF' => "^wgf, to line$sign{_}nr",
 
-'v!' => ["external filter"],
-'v:' => ["cmd on range"],
-'v<' => ["un$sign{_}indent"],
-'v=' => ["re$sign{_}ind$sign{_}ent"],
-'v>' => ["ind$sign{_}ent"],
-'v~' => ["toggle case"],
-"v\e"=> ["normal mode"],
-'v^]'=> ["jump to tag"],
+'v!' => "external filter",
+'v:' => "cmd on range",
+'v<' => "un$sign{_}indent",
+'v=' => "re$sign{_}ind$sign{_}ent",
+'v>' => "ind$sign{_}ent",
+'v~' => "toggle case",
+"v\e"=> "normal mode",
+'v^]'=> "jump to tag",
 
-'va' => ["ex$sign{_}tend area"],
-'vA' => ["ap$sign{_}pend to block"], # block
-'vc' => ["repl$sign{_}ace area"],
-'vC' => ["repl$sign{_}ace full lines"], # like vS, but blocks are extended until eol
-'v^c'=> ["abort"],
-'vd' => ["delete area"],
-'vD' => ["delete lines"],
-'vg' => ["extra cmds"],
-'v^g'=> ["select mode"],
-'v^h'=> ["back$sign{_}space"], # delete in select mode, left otherwise
-'vi' => ["extend inner a$sign{_}r$sign{_}ea"],
-'vI' => ["insert to block"], # block
-'vJ' => ["join lines"],
-'vK' => ["help sel$sign{_}ect$sign{_}ion"],
-'vo' => ["to other corner"],
-'vO' => ["to other side"],
-'v^o'=> ["visual once"], # select
-'vp' => ["repl$sign{_}ace w/ paste"],
-'vP' => ["repl$sign{_}ace w/ paste"],
-'vr' => ["fill up w/ ch$sign{_}ar"],
-'vS' => ["repl$sign{_}ace lines"],
-'vu' => ["lower$sign{_}case"],
-'vU' => ["upper$sign{_}case"],
-'vv' => ["char$sign{_}wise"],
-'vV' => ["line$sign{_}wise"],
-'v^v'=> ["block$sign{_}wise"],
-'vy' => ["yank area"],
-'vY' => ["yank lines"],
+'va' => "ex$sign{_}tend area",
+'vA' => "ap$sign{_}pend to block", # block
+'vc' => "repl$sign{_}ace area",
+'vC' => "repl$sign{_}ace full lines", # like vS, but blocks are extended until eol
+'v^c'=> "abort",
+'vd' => "delete area",
+'vD' => "delete lines",
+'vg' => "extra cmds",
+'v^g'=> "select mode",
+'v^h'=> "back$sign{_}space", # delete in select mode, left otherwise
+'vi' => "extend inner a$sign{_}r$sign{_}ea",
+'vI' => "insert to block", # block
+'vJ' => "join lines",
+'vK' => "help sel$sign{_}ect$sign{_}ion",
+'vo' => "to other corner",
+'vO' => "to other side",
+'v^o'=> "visual once", # select
+'vp' => "repl$sign{_}ace w/ paste",
+'vP' => "repl$sign{_}ace w/ paste",
+'vr' => "fill up w/ ch$sign{_}ar",
+'vS' => "repl$sign{_}ace lines",
+'vu' => "lower$sign{_}case",
+'vU' => "upper$sign{_}case",
+'vv' => "char$sign{_}wise",
+'vV' => "line$sign{_}wise",
+'v^v'=> "block$sign{_}wise",
+'vy' => "yank area",
+'vY' => "yank lines",
 
-"vg\e"=> ["visual mode"],
-'vg?' => ["rot13 encode"],
-'vgJ' => ["join literal$sign{_}ly"],
-'vgq' => ["for$sign{_}mat"],
-'vgw' => ["for$sign{_}mat still"],
+"vg\e"=> "visual mode",
+'vg?' => "rot13 encode",
+'vgJ' => "join literal$sign{_}ly",
+'vgq' => "for$sign{_}mat",
+'vgw' => "for$sign{_}mat still",
 
-"va'" => ["quoted string"],
-'va<' => ["&lt;&gt; block"],
-'va[' => ["[] block"],
-"va\e"=> ["visual mode"],
+"va'" => "quoted string",
+'va<' => "&lt;&gt; block",
+'va[' => "[] block",
+"va\e"=> "visual mode",
 
-'vab' => ["() block"],
-'vaB' => ["{} Block"],
-'vap' => ["para$sign{_}graph"],
-'vas' => ["senten$sign{_}ce"],
-'vat' => ["xml tag block"],
-'vaw' => ["word"],
-'vaW' => ['<span style="font-variant:small-caps">word</span>'],
+'vab' => "() block",
+'vaB' => "{} Block",
+'vap' => "para$sign{_}graph",
+'vas' => "senten$sign{_}ce",
+'vat' => "xml tag block",
+'vaw' => "word",
+'vaW' => '<span style="font-variant:small-caps">word</span>',
 
-#'c^a' => ["complete"], #todo
-#'c^b' => ["bol"],
-#'c^d' => ["complete"], #todo
-#'c^e' => ["eol"],
-#'c^j' => ["execute cmd"],
-#'c^l' => ["complete"], #todo
-#'c^n' => ["complete"], #todo
-#'c^p' => ["complete"], #todo
-#'c^r' => 'i^r', # and then some...
-#      ## ["insert register"],
-#'c^y' => ["selec$sign{_}tion to clip$sign{_}b$sign{_}oard"],
+#'c^a' => "complete", #todo
+#'c^b' => "bol",
+#'c^d' => "complete", #todo
+#'c^e' => "eol",
+#'c^j' => "execute cmd",
+#'c^l' => "complete", #todo
+#'c^n' => "complete", #todo
+#'c^p' => "complete", #todo
+#'c^r' => \'i^r', # and then some...
+#      ## "insert register",
+#'c^y' => "selec$sign{_}tion to clip$sign{_}b$sign{_}oard",
 
-'i^@' => ["last insert"],
-'i^^' => ["toggle :lmap usag$sign{_}e"],
-"i\e" => ["normal mode"],
-'i^]' => ["abbrev$sign{_}iate"],
-'i^_' => ["toggle lang$sign{_}uage"],
+'i^@' => "last insert",
+'i^^' => "toggle :lmap usag$sign{_}e",
+"i\e" => "normal mode",
+'i^]' => "abbrev$sign{_}iate",
+'i^_' => "toggle lang$sign{_}uage",
 
-'i^a' => ["insert prev$sign{_}ious"],
-'i^b' => ["former i^_"],
-'i^c' => ["abort, no abbr"],
-'i^d' => ["un$sign{_}ind$sign{_}ent"],
-'i^e' => ["ins char below"],
-'i^f' => ["set indent$sign{_}ation"],
-'i^g' => ["extra cmds"],
-'i^h' => ["back$sign{_}space"],
-'i^i' => ["tab"],
-'i^j' => ["enter"],
-'i^k' => ["di$sign{_}graph", "Key code"],
-'i^l' => ["<em>im</em> leave ins mode"],
-'i^m' => ["enter"],
-'i^n' => ["find next keyword"],
-'i^o' => ["exec$sign{_}ute cmd"],
-'i^p' => ["find prev keyword"],
-'i^r' => ["insert reg$sign{_}ister"],
-'i^t' => ["indent"],
-'i^u' => ["delete line"],
-'i^v' => ["literal or ch$sign{_}ar$sign{_}cod$sign{_}e", "Verbatim or by Value"],
-'i^w' => ["delete word back"],
-'i^x' => ["ex$sign{_}pand mode"],
-'i^y' => ["ins char above"],
-'i^z' => [":sus$sign{_}pend in <em>im</em>"],
+'i^a' => "insert prev$sign{_}ious",
+'i^b' => "former i^_",
+'i^c' => "abort, no abbr",
+'i^d' => "un$sign{_}ind$sign{_}ent",
+'i^e' => "ins char below",
+'i^f' => "set indent$sign{_}ation",
+'i^g' => "extra cmds",
+'i^h' => "back$sign{_}space",
+'i^i' => "tab",
+'i^j' => "enter",
+'i^k' => "di$sign{_}graph\nKey code",
+'i^l' => "<em>im</em> leave ins mode",
+'i^m' => "enter",
+'i^n' => "find next keyword",
+'i^o' => "exec$sign{_}ute cmd",
+'i^p' => "find prev keyword",
+'i^r' => "insert reg$sign{_}ister",
+'i^t' => "indent",
+'i^u' => "delete line",
+'i^v' => "literal or ch$sign{_}ar$sign{_}cod$sign{_}e\nVerbatim or by Value",
+'i^w' => "delete word back",
+'i^x' => "ex$sign{_}pand mode",
+'i^y' => "ins char above",
+'i^z' => ":sus$sign{_}pend in <em>im</em>",
 
-"i^g\e"=> ["insert mode"],
-'i^gk' => ["$sign{up} start col$sign{_}umn"],
-'i^gj' => ["$sign{down} start col$sign{_}umn"],
-'i^gu' => ["break undo seq$sign{_}uence"],
+"i^g\e"=> "insert mode",
+'i^gk' => "$sign{up} start col$sign{_}umn",
+'i^gj' => "$sign{down} start col$sign{_}umn",
+'i^gu' => "break undo seq$sign{_}uence",
 # other i^g keys (even esc) are not recognized
 
-"i^x\e" => ["normal mode"],
-'i^x^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e"],
-'i^x^e' => ["window up"],
-'i^x^f' => ["file comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^i' => ["ident comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^k' => ["dict comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^l' => ["line comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^n' => ["next comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^o' => ["omni comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^p' => ["prev comp$sign{_}l$sign{_}ete"],
-'i^x^s' => ["spell sugg$sign{_}est"],
-'i^x^t' => ["thes$sign{_}aur$sign{_}us compl$sign{_}et$sign{_}e"],
-'i^x^u' => ["cus$sign{_}tom comp$sign{_}l$sign{_}et$sign{_}e"],
-'i^x^v' => ["ex cmd compl$sign{_}et$sign{_}e"],
-'i^x^y' => ["window down"],
+"i^x\e" => "normal mode",
+'i^x^]' => "tag comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^d' => "def$sign{_}ine compl$sign{_}et$sign{_}e",
+'i^x^e' => "window up",
+'i^x^f' => "file comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^i' => "ident comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^k' => "dict comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^l' => "line comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^n' => "next comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^o' => "omni comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^p' => "prev comp$sign{_}l$sign{_}ete",
+'i^x^s' => "spell sugg$sign{_}est",
+'i^x^t' => "thes$sign{_}aur$sign{_}us compl$sign{_}et$sign{_}e",
+'i^x^u' => "cus$sign{_}tom comp$sign{_}l$sign{_}et$sign{_}e",
+'i^x^v' => "ex cmd compl$sign{_}et$sign{_}e",
+'i^x^y' => "window down",
 
 # XXX ex mode if you want to go completely wild
 },
@@ -454,7 +454,7 @@ mode => {
        '^wg' => "extended window commands (ctrl-w g)",
         v    => "visual mode",
         vg   => "extended visual commands (v g)",
-        va   => 'text object selection (v a/i)',
+        va   => "text object selection (v a/i)",
 #       c    => "command-line mode",
         i    => "insert mode",
        'i^g' => "extended insert commands (i ctrl-g)",
index 1b23b4d..0aa3945 100644 (file)
@@ -2,128 +2,128 @@ use utf8;
 {
 
 key => {
-       '~' => ["open home$sign{_}dir"],
-       '@' => ["play macro"],
-       '^' => ["left of page"],
-       '$' => ["right of page"],
-       '#' => ["rev. find word"],
-       '*' => ["find word"],
-       '^^'=> ["last tab"],
-       '?' => ["find rev."],
-       '/' => ["find"],
-       '[' => ["focus forw$sign{_}ard"],
-       ']' => ["focus back"],
-       ':' => ["comm$sign{_}and line mode"],
-       ';' => ["extend$sign{_}ed hint$sign{_}s mode"],
-       "'" => ["jump to mark"],
-       '|' => ["toggle source"],
+       '~' => "open home$sign{_}dir",
+       '@' => "play macro",
+       '^' => "left of page",
+       '$' => "right of page",
+       '#' => "rev. find word",
+       '*' => "find word",
+       '^^'=> "last tab",
+       '?' => "find rev.",
+       '/' => "find",
+       '[' => "focus forw$sign{_}ard",
+       ']' => "focus back",
+       ':' => "comm$sign{_}and line mode",
+       ';' => "extend$sign{_}ed hint$sign{_}s mode",
+       "'" => "jump to mark",
+       '|' => "toggle source",
 
-       'a' => ["add bookm$sign{_}ark"],
-       'A' => ["toggle bookm$sign{_}ark$sign{_}ed"],
-       '^a'=> ["incr$sign{_}em$sign{_}ent url nr"],
-       'b' => ["to buffer"],
-       'B' => ["list buffers"],
-       '^b'=> ["page up"],
-       '^c'=> ["stop loading"],
-       '^d'=> ["scroll down"],
-       'd' => ["close tab"],
-       'D' => ["close tab left$sign{_}ward$sign{_}s"],
-       'i' => ["caret mode"],
-       'f' => ["quick$sign{_}hint mode"],
-       'F' => ["f in tab"],
-       '^f'=> ["page down"],
-       'g' => ["extra cmds"],
-       'G' => ["last/% line"],
-       '^g'=> ["file name"],
-       'h' => [$sign{left}],
-       'H' => ["page back"],
-       'j' => [$sign{down}],
-       'k' => [$sign{up}],
-       'l' => [$sign{right}],
-       'L' => ["page forw$sign{_}ard"],
-       'M' => ["mark url"],
-       'm' => ["mark line"],
-       'n' => ["find next"],
-       'N' => ["find prev$sign{_}ious"],
-       '^n'=> ["next tab"],
-       'o' => ["open"],
-       'O' => ["alter url"],
-       'p' => ["open pasted url"],
-       'P' => ["p in tab"],
-       'q' => ["record macro"],
-       'r' => ["reload page"],
-       'R' => ["reload uncach$sign{_}e$sign{_}d"],
-       't' => ["tab open new"],
-       'T' => ["tab open curr$sign{_}ent"],
-       '^v'=> ["pass single"],
-       '^u'=> ["scroll up"],
-       'u' => ["restore closed tab"],
-       '^x'=> ["decr$sign{_}em$sign{_}ent url nr"],
-       'y' => ["copy url"],
-       'Y' => ["copy select$sign{_}ion"],
-       'z' => ["zoom"],
-       'Z' => ["quit"],
-       '^z'=> ["pass throu$sign{_}gh"],
+       'a' => "add bookm$sign{_}ark",
+       'A' => "toggle bookm$sign{_}ark$sign{_}ed",
+       '^a'=> "incr$sign{_}em$sign{_}ent url nr",
+       'b' => "to buffer",
+       'B' => "list buffers",
+       '^b'=> "page up",
+       '^c'=> "stop loading",
+       '^d'=> "scroll down",
+       'd' => "close tab",
+       'D' => "close tab left$sign{_}ward$sign{_}s",
+       'i' => "caret mode",
+       'f' => "quick$sign{_}hint mode",
+       'F' => "f in tab",
+       '^f'=> "page down",
+       'g' => "extra cmds",
+       'G' => "last/% line",
+       '^g'=> "file name",
+       'h' => $sign{left},
+       'H' => "page back",
+       'j' => $sign{down},
+       'k' => $sign{up},
+       'l' => $sign{right},
+       'L' => "page forw$sign{_}ard",
+       'M' => "mark url",
+       'm' => "mark line",
+       'n' => "find next",
+       'N' => "find prev$sign{_}ious",
+       '^n'=> "next tab",
+       'o' => "open",
+       'O' => "alter url",
+       'p' => "open pasted url",
+       'P' => "p in tab",
+       'q' => "record macro",
+       'r' => "reload page",
+       'R' => "reload uncach$sign{_}e$sign{_}d",
+       't' => "tab open new",
+       'T' => "tab open curr$sign{_}ent",
+       '^v'=> "pass single",
+       '^u'=> "scroll up",
+       'u' => "restore closed tab",
+       '^x'=> "decr$sign{_}em$sign{_}ent url nr",
+       'y' => "copy url",
+       'Y' => "copy select$sign{_}ion",
+       'z' => "zoom",
+       'Z' => "quit",
+       '^z'=> "pass throu$sign{_}gh",
 
-       'g0' => ["first tab"],
-       'g$' => ["last tab"],
+       'g0' => "first tab",
+       'g$' => "last tab",
 
-       'gb' => ["repeat buffer cmd"],
-       'gB' => ["reverse gb"],
-       'gf' => ["view source"],
-       'gF' => ["source extern$sign{_}al"],
-       'g^g'=> ["file details"],
-       'gg' => ["first line"],
-       'gh' => ["open home$sign{_}page"],
-       'gH' => ["tab with home$sign{_}page"],
-       'gi' => ["last input field"],
-       'gn' => ["tabopen url mark", 'Go in New tab'],
-       'go' => ["open url mark"],
-       'gP' => ["$sign{alias}P inactive"],
-       'gt' => ["switch tab"],
-       'gT' => ["tab back"],
-       'gu' => ["parent dir$sign{_}ectory"],
-       'gU' => ["site root"],
+       'gb' => "repeat buffer cmd",
+       'gB' => "reverse gb",
+       'gf' => "view source",
+       'gF' => "source extern$sign{_}al",
+       'g^g'=> "file details",
+       'gg' => "first line",
+       'gh' => "open home$sign{_}page",
+       'gH' => "tab with home$sign{_}page",
+       'gi' => "last input field",
+       'gn' => "tabopen url mark\nGo in New tab",
+       'go' => "open url mark",
+       'gP' => "$sign{alias}P inactive",
+       'gt' => "switch tab",
+       'gT' => "tab back",
+       'gu' => "parent dir$sign{_}ectory",
+       'gU' => "site root",
 
-       ';;' => ["focus"],
-       ';?' => ["element details"],
-       ';a' => ["save prompt"],
-       ';b' => ["open bg tab"],
-       ';c' => ["context menu"],
-       ';f' => ["frame focus"],
-       ';F' => ["multiple bg tabs"],
-       ';i' => ["image"],
-       ';I' => ["image in tab"],
-       ';o' => ["open"],
-       ';O' => ["open prompt"],
-       ';s' => ["save"],
-       ';t' => ["open in tab"],
-       ';T' => ["tab prompt"],
-       ';v' => ["view source"],
-       ';w' => ["open in wind$sign{_}ow"],
-       ';W' => ["wind$sign{_}ow prompt"],
-       ';y' => ["copy url"],
-       ';Y' => ["copy text"],
+       ';;' => "focus",
+       ';?' => "element details",
+       ';a' => "save prompt",
+       ';b' => "open bg tab",
+       ';c' => "context menu",
+       ';f' => "frame focus",
+       ';F' => "multiple bg tabs",
+       ';i' => "image",
+       ';I' => "image in tab",
+       ';o' => "open",
+       ';O' => "open prompt",
+       ';s' => "save",
+       ';t' => "open in tab",
+       ';T' => "tab prompt",
+       ';v' => "view source",
+       ';w' => "open in wind$sign{_}ow",
+       ';W' => "wind$sign{_}ow prompt",
+       ';y' => "copy url",
+       ';Y' => "copy text",
 
-       ']f' => ["next frame$sign{_}set"],
-       ']]' => ["open <q>next</q>"],
+       ']f' => "next frame$sign{_}set",
+       ']]' => "open <q>next</q>",
 
-       '[f' => ["previous frame$sign{_}set"],
-       '[[' => ["open <q>prev</q>"],
+       '[f' => "previous frame$sign{_}set",
+       '[[' => "open <q>prev</q>",
 
-       'zi' => ["en$sign{_}large text", 'Zoom In'],
-       'zm' => ["en$sign{_}large more", 'Zoom More'],
-       'zo' => ["shrink text", 'Zoom Out'],
-       'zr' => ["tinier text", 'Zoom Reduce'],
-       'zz' => ["reset text size", 'Zoom Zero'],
-       'zI' => ["zoom in"],
-       'zM' => ["zoom more"],
-       'zO' => ["zoom out"],
-       'zR' => ["zoom out more", 'Zoom Reduce'],
-       'zZ' => ["zoom reset", 'Zoom Zero'],
+       'zi' => "en$sign{_}large text\nZoom In",
+       'zm' => "en$sign{_}large more\nZoom More",
+       'zo' => "shrink text\nZoom Out",
+       'zr' => "tinier text\nZoom Reduce",
+       'zz' => "reset text size\nZoom Zero",
+       'zI' => "zoom in",
+       'zM' => "zoom more",
+       'zO' => "zoom out",
+       'zR' => "zoom out more\nZoom Reduce",
+       'zZ' => "zoom reset\nZoom Zero",
 
-       'ZQ' => ["quit no save"],
-       'ZZ' => ["quit save ses$sign{_}s$sign{_}ion"],
+       'ZQ' => "quit no save",
+       'ZZ' => "quit save ses$sign{_}s$sign{_}ion",
 },
 
 mode => {