keyboard: dereference class definition includes
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 23 Jun 2015 09:16:31 +0000 (11:16 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 21 Sep 2015 22:20:08 +0000 (00:20 +0200)
Prefix aliases by '=' so they no longer conflict with values of
single-element arrays.

12 files changed:
Shiar_Sheet/Keyboard.pm
less.eng.inc.pl
less.inc.pl
mplayer.inc.pl
mutt.eng.inc.pl
mutt.inc.pl
nethack.inc.pl
readline.eng.inc.pl
readline.inc.pl
screen.inc.pl
vi.inc.pl
vimperator.inc.pl

index 30b73bf..90ec4e8 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 no  warnings 'uninitialized';  # save some useless checks for more legible code
 use Carp;
 
-our $VERSION = 'v2.04';
+our $VERSION = 'v2.05';
 
 my @casedesc = (undef, qw/shift ctrl meta/, 'shift meta');
 my @rowdesc = qw(numeric top home bottom);
@@ -81,7 +81,7 @@ sub keyunalias {
        my $keyinfo = $self->{def}->{$mode}->{$key};
 
        return unless defined $keyinfo;
-       return $keyinfo->[0] if ref $keyinfo;
+       $keyinfo =~ s/^=// or return $keyinfo;
        return '' if $ancestry->{$key}++;  # endless loop failsafe
        return $self->keyunalias($keyinfo, $ancestry);
 }
@@ -89,16 +89,16 @@ sub keyunalias {
 sub print_key {
        my $self = shift;
        my ($mode, $key, $flags) = @_;
+       my ($desc, $mnem);
 
        if (not defined $flags) {
-               $flags = [$key eq '^0' ? 'ni' : 'no'];
+               $flags = $key eq '^0' ? 'ni' : 'no';
        }
-       elsif (not ref $flags) { # alias
-               my $desc = $self->{sign}->{alias};
+       elsif ($flags =~ s/^=//) { # alias
+               $desc = $self->{sign}->{alias};
                $desc .= $flags eq "\e" ? 'esc' : $flags;
-               $flags = [$self->keyunalias($flags) . ' alias', $desc];
+               $flags = $self->keyunalias($flags) . ' alias';
        }
-       my ($flags, $desc, $mnem) = @{$flags};
        if (my $txt = $self->{key}->{$mode.$key}) {
                ($desc, $mnem) = split /\n/, $self->escapedesc($txt);
        }
@@ -203,8 +203,8 @@ Shiar_Sheet::Keyboard - Output HTML for key sheets
        my $keys = Shiar_Sheet::Keyboard({
                def => {
                        'lead' => {
-                               'A' => 'a', # alias
-                               'a' => ['classes'],
+                               'A' => '=a', # alias
+                               'a' => 'classes',
                        },
                },
                key => {
index e145a06..bdb302c 100644 (file)
@@ -2,6 +2,8 @@ use utf8;
 {
 
 key => {
+       "\e"=> "alt<>/meta",
+
        'b' => "page up",
        'd' => 'scroll down',
        'f' => "page down",
@@ -42,18 +44,21 @@ key => {
 
        '(' => "closing",
 
+       "^[\e"=> "noop",
        '^[n' => "any next find",
        '^[N' => "any prev find",
        '^[u' => "mark search\nUndo",
        '^[(' => "scroll left",
        '^[)' => "scroll right",
 
+       ":\e"=> "noop",
        ':d' => "drop file",
        ':e' => "open file",
        ':n' => "next file",
        ':p' => "prev file",
        ':x' => "first file",
 
+       "-\e"=> "noop",
        '-a' => "advance find page",
        '-b' => "buffer space",
        '-B' => "static buffer for pipes",
index 0fdedf6..946d444 100644 (file)
@@ -2,150 +2,150 @@ use utf8;
 { # less v418
 
 '' => {
-       "\e"=> ['mo mode^[', "alt$sign{_}/meta"],
+       "\e"=> 'mo mode^[',
 
-       'b' => ['pm more'],
-       '^b'=> 'b',
-       'd' => ['pm more'],
-       '^d'=> 'd',
-       'e' => 'j',
-       '^e'=> 'j',
-       'f' => ['pm more'],
-       '^f'=> 'f',
-       'F' => ['mo'],
-       'g' => ['pm'],
-       '^g'=> '=',
-       'G' => ['pm'],
-       'h' => ['mo more'],
-       'H' => 'h',
-       'j' => ['pm'],
-       'k' => ['pm'],
-       '^k'=> 'k',
-       '^l'=> 'r', # more
-       'm' => ['po arg'],
-       '^m'=> 'j',
-       'n' => ['co more'],
-       'N' => ['co'],
-       '^n'=> 'j',
-       'p' => ['pm'],
-       '^p'=> 'k',
-       'q' => ['mv more'],
-       'Q' => 'q',
-       'r' => ['ci'],
-       '^r'=> 'r',
-       'R' => ['ci'],
-       's' => ['mv arg'],
-       't' => ['co'],
-       'T' => ['co'],
-       'u' => ['pm'],
-       '^u'=> 'u',
-       'v' => ['mv linkvi more'],
-       '^v'=> 'f',
-       'V' => ['ci'],
-       'w' => ['pm'],
-       '^x'=> ['mv arg mode^x'],
-       'y' => 'k',
-       '^y'=> 'k',
-       'z' => ['pm more'],
+       'b' => 'pm more',
+       '^b'=> '=b',
+       'd' => 'pm more',
+       '^d'=> '=d',
+       'e' => '=j',
+       '^e'=> '=j',
+       'f' => 'pm more',
+       '^f'=> '=f',
+       'F' => 'mo',
+       'g' => 'pm',
+       '^g'=> '==',
+       'G' => 'pm',
+       'h' => 'mo more',
+       'H' => '=h',
+       'j' => 'pm',
+       'k' => 'pm',
+       '^k'=> '=k',
+       '^l'=> '=r', # more
+       'm' => 'po arg',
+       '^m'=> '=j',
+       'n' => 'co more',
+       'N' => 'co',
+       '^n'=> '=j',
+       'p' => 'pm',
+       '^p'=> '=k',
+       'q' => 'mv more',
+       'Q' => '=q',
+       'r' => 'ci',
+       '^r'=> '=r',
+       'R' => 'ci',
+       's' => 'mv arg',
+       't' => 'co',
+       'T' => 'co',
+       'u' => 'pm',
+       '^u'=> '=u',
+       'v' => 'mv linkvi more',
+       '^v'=> '=f',
+       'V' => 'ci',
+       'w' => 'pm',
+       '^x'=> 'mv arg mode^x',
+       'y' => '=k',
+       '^y'=> '=k',
+       'z' => 'pm more',
 
-       '!' => ['mv more'],
-       '|' => ['mv arg'],
-       ':' => ['mv arg mode:'],
-       '/' => ['co arg more'],
-       '?' => ['co arg'],
-       '%' => 'p',
-       '&' => ['co arg'],
-       "'" => ['po arg'],
-       '-' => ['mv arg mode-'],
-       '_' => ['ci arg mode-'],
-       '=' => ['ci more'],
-       '+' => ['mo'],
+       '!' => 'mv more',
+       '|' => 'mv arg',
+       ':' => 'mv arg mode:',
+       '/' => 'co arg more',
+       '?' => 'co arg',
+       '%' => '=p',
+       '&' => 'co arg',
+       "'" => 'po arg',
+       '-' => 'mv arg mode-',
+       '_' => 'ci arg mode-',
+       '=' => 'ci more',
+       '+' => 'mo',
 
-       '(' => ['co'],
-       '<' => 'g',
-       '>' => 'G',
+       '(' => 'co',
+       '<' => '=g',
+       '>' => '=G',
 },
 
 '^[' => { # esc
-       "\e"=> ['mo mode', 'noop'],
-       'n' => ['co'],
-       'N' => ['co'],
-       'u' => ['ci'],
-       'v' => 'b',
-       '(' => ['pm'],
-       ')' => ['pm'],
-       '<' => 'g',
-       '>' => 'G',
+       "\e"=> 'mo mode',
+       'n' => 'co',
+       'N' => 'co',
+       'u' => 'ci',
+       'v' => '=b',
+       '(' => 'pm',
+       ')' => 'pm',
+       '<' => '=g',
+       '>' => '=G',
 },
 
 #'^x' => {
-#      "\e"=> ['mo mode', 'noop'],
-#      '^x' => "'",
-#      '^v' => ':e',
+#      "\e"=> 'mo mode',
+#      '^x' => "='",
+#      '^v' => '=:e',
 #},
 
 ':' => {
-       "\e"=> ['mo mode', 'noop'],
-       'd' => ['mo'],
-       'e' => ['mo'],
-       'f' => '=',
-       'n' => ['mo more'],
-       'p' => ['mo more'],
-       'q' => 'q',
-       'Q' => ':q',
-       'x' => ['mo'],
+       "\e"=> 'mo mode',
+       'd' => 'mo',
+       'e' => 'mo',
+       'f' => '==',
+       'n' => 'mo more',
+       'p' => 'mo more',
+       'q' => '=q',
+       'Q' => '=:q',
+       'x' => 'mo',
 },
 
 '-' => {
-       "\e"=> ['mo mode', 'noop'],
-       'a' => ['co'],
-       'b' => ['mo arg'],
-       'B' => ['mo'],
-       'c' => ['pm'],
-       'd' => ['mv'],
-       'D' => ['mv arg ext'],
-       'e' => ['mo'],
-       'E' => ['mo'],
-       'f' => ['mo'],
-       'F' => ['mo'],
-       'g' => ['co'],
-       'h' => ['pm arg'],
-       'i' => ['co'],
-       'I' => ['co'],
-       'j' => ['po arg'],
-       'J' => ['ci'],
-       'k' => ['mv arg'],
-       'L' => ['mv'],
-       'm' => ['ci'],
-       'M' => ['ci'],
-       'n' => ['mv'],
-       'N' => ['ci'],
-       'o' => ['me arg'],
-       'O' => ['me arg'],
-       'p' => ['co arg'],
-       'P' => ['ci arg'],
-       'q' => ['mv'],
-       'Q' => ['mv'],
-       'r' => ['mv'],
-       'R' => ['mv'],
-       's' => ['mv'],
-       'S' => ['mv'],
-       't' => ['co arg'],
-       'T' => ['co arg'],
-       'u' => ['mv'],
-       'U' => ['mv'],
-       'V' => 'V',
-       'w' => ['mv'],
-       'W' => ['mv'],
-       'x' => ['mv arg'],
-       'X' => ['mv'],
-       'y' => ['pm arg'],
-       'z' => ['pm arg'],
-       '"' => ['mv arg'],
-       '~' => ['mv'],
-       '#' => ['pm arg'],
-       '-' => ['mv arg'],
-       '+' => ['mv arg'],
+       "\e"=> 'mo mode',
+       'a' => 'co',
+       'b' => 'mo arg',
+       'B' => 'mo',
+       'c' => 'pm',
+       'd' => 'mv',
+       'D' => 'mv arg ext',
+       'e' => 'mo',
+       'E' => 'mo',
+       'f' => 'mo',
+       'F' => 'mo',
+       'g' => 'co',
+       'h' => 'pm arg',
+       'i' => 'co',
+       'I' => 'co',
+       'j' => 'po arg',
+       'J' => 'ci',
+       'k' => 'mv arg',
+       'L' => 'mv',
+       'm' => 'ci',
+       'M' => 'ci',
+       'n' => 'mv',
+       'N' => 'ci',
+       'o' => 'me arg',
+       'O' => 'me arg',
+       'p' => 'co arg',
+       'P' => 'ci arg',
+       'q' => 'mv',
+       'Q' => 'mv',
+       'r' => 'mv',
+       'R' => 'mv',
+       's' => 'mv',
+       'S' => 'mv',
+       't' => 'co arg',
+       'T' => 'co arg',
+       'u' => 'mv',
+       'U' => 'mv',
+       'V' => '=V',
+       'w' => 'mv',
+       'W' => 'mv',
+       'x' => 'mv arg',
+       'X' => 'mv',
+       'y' => 'pm arg',
+       'z' => 'pm arg',
+       '"' => 'mv arg',
+       '~' => 'mv',
+       '#' => 'pm arg',
+       '-' => 'mv arg',
+       '+' => 'mv arg',
 },
 
 }
index e07b78c..a4554ef 100644 (file)
@@ -3,55 +3,55 @@ use utf8;
 
 '' => {
        "\e"=> 'q',
-       '[' => ['mo'],
-       ']' => ['mo'],
-       '{' => ['mo'],
-       '}' => ['mo'],
-       '<' => ['me'],
-       '>' => ['me'],
-       'p' => ['mo'],
-       '.' => ['mo'],
-       'q' => ['me'],
-       '+' => ['mi'],
-       '-' => ['mi'],
-       '/' => ['mi'],
-       '*' => ['mi'],
-       '9' => '/',
-       '0' => '*',
-       'm' => ['mi'],
-       '#' => ['mi'],
-       'f' => ['co'],
-       'T' => ['co'],
-       'w' => ['co'],
-       'e' => ['co'],
-       'o' => ['ci'],
-       'd' => ['co'],
-       'v' => ['pm'],
-       'b' => ['pm'],
-       'j' => ['pm'],
-       'y' => ['pm'],
-       'g' => ['pm'],
-       'F' => ['pm'],
-       'a' => ['pm'],
-       'c' => ['co ext'],
-       'n' => ['co ext'],
-       'x' => ['pm'],
-       'z' => ['pm'],
-       'r' => ['pm'],
-       't' => ['pm'],
-       's' => ['me ext'],
-       'S' => ['me ext'],
-       'I' => ['ci'],
-       '!' => ['mo'],
-       '@' => ['mo'],
-       '1' => ['co ext'],
-       '2' => ['co ext'],
-       '3' => ['co ext'],
-       '4' => ['co ext'],
-       '5' => ['co ext'],
-       '6' => ['co ext'],
-       '7' => ['co ext'],
-       '8' => ['co ext'],
+       '[' => 'mo',
+       ']' => 'mo',
+       '{' => 'mo',
+       '}' => 'mo',
+       '<' => 'me',
+       '>' => 'me',
+       'p' => 'mo',
+       '.' => 'mo',
+       'q' => 'me',
+       '+' => 'mi',
+       '-' => 'mi',
+       '/' => 'mi',
+       '*' => 'mi',
+       '9' => '=/',
+       '0' => '=*',
+       'm' => 'mi',
+       '#' => 'mi',
+       'f' => 'co',
+       'T' => 'co',
+       'w' => 'co',
+       'e' => 'co',
+       'o' => 'ci',
+       'd' => 'co',
+       'v' => 'pm',
+       'b' => 'pm',
+       'j' => 'pm',
+       'y' => 'pm',
+       'g' => 'pm',
+       'F' => 'pm',
+       'a' => 'pm',
+       'c' => 'co ext',
+       'n' => 'co ext',
+       'x' => 'pm',
+       'z' => 'pm',
+       'r' => 'pm',
+       't' => 'pm',
+       's' => 'me ext',
+       'S' => 'me ext',
+       'I' => 'ci',
+       '!' => 'mo',
+       '@' => 'mo',
+       '1' => 'co ext',
+       '2' => 'co ext',
+       '3' => 'co ext',
+       '4' => 'co ext',
+       '5' => 'co ext',
+       '6' => 'co ext',
+       '7' => 'co ext',
+       '8' => 'co ext',
 },
 
 }
index 9409f02..ea49e9d 100644 (file)
@@ -194,6 +194,12 @@ key => {
        '/~=' => "dupli<>cate",
        '/~$' => "unrefer<>enced",
        '/~(' => "in thread",
+
+       # globally label escape as meta key
+         "\e"=> "+",
+        "m\e"=> "+",
+        "w\e"=> "+",
+       "/~\e"=> "+",
 },
 
 mode => {
index 73ce7d6..230ab59 100644 (file)
@@ -1,33 +1,33 @@
 use utf8;
 
 my %common = (
-       "\e"=> ['me mode', '+'],
+       "\e"=> 'me mode',
 
-       'H' => ['pm'], # top-page
-       'j' => ['pm'], # next-entry, next-undeleted
-       'k' => ['pm'], # previous-entry, previous-undeleted
-       'L' => ['pm'], # bottom-page
-       '^l'=> ['ci'], # refresh
-       'M' => ['pm'], # middle-page
-       '^m'=> ['mi mode^m'], # select-entry, display-message
-       'n' => ['po'], # search-next
-       'q' => ['mv mode'], # exit
-       't' => ['co'], # tag-entry
-       'z' => ['pm'], # next-page
-       'Z' => ['pm'], # previous-page
+       'H' => 'pm', # top-page
+       'j' => 'pm', # next-entry, next-undeleted
+       'k' => 'pm', # previous-entry, previous-undeleted
+       'L' => 'pm', # bottom-page
+       '^l'=> 'ci', # refresh
+       'M' => 'pm', # middle-page
+       '^m'=> 'mi mode^m', # select-entry, display-message
+       'n' => 'po', # search-next
+       'q' => 'mv mode', # exit
+       't' => 'co', # tag-entry
+       'z' => 'pm', # next-page
+       'Z' => 'pm', # previous-page
 
-       '*' => ['pm'], # last-entry
-       '=' => ['pm'], # first-entry
-       ':' => ['mi'], # enter-command
-       ';' => ['mi arg'], # tag-prefix
-       '>' => ['pm'], # next-line
-       '<' => ['pm'], # previous-line
-       ']' => ['pm'], # half-down
-       '[' => ['pm'], # half-up
-       '?' => ['ci'], # help
-       '!' => ['ci arg'], # shell
-       '/' => ['po arg mode/~'], # search
-       '+/'=> ['po arg mode/~'], # search
+       '*' => 'pm', # last-entry
+       '=' => 'pm', # first-entry
+       ':' => 'mi', # enter-command
+       ';' => 'mi arg', # tag-prefix
+       '>' => 'pm', # next-line
+       '<' => 'pm', # previous-line
+       ']' => 'pm', # half-down
+       '[' => 'pm', # half-up
+       '?' => 'ci', # help
+       '!' => 'ci arg', # shell
+       '/' => 'po arg mode/~', # search
+       '+/'=> 'po arg mode/~', # search
 );
 
 {
@@ -35,182 +35,182 @@ my %common = (
 '' => {
        %common,
 
-       '@' => ['ci'], # display-address
-       '.' => ['mv'], # buffy-list #TODO
-       '|' => ['mi'], # pipe-message
-       '$' => ['co'], # sync-mailbox
-       '#' => ['co'], # break-thread
-       '&' => ['co'], # link-threads
-       '%' => ['co'], # toggle-write
-       ' ' => '^m',
+       '@' => 'ci', # display-address
+       '.' => 'mv', # buffy-list #TODO
+       '|' => 'mi', # pipe-message
+       '$' => 'co', # sync-mailbox
+       '#' => 'co', # break-thread
+       '&' => 'co', # link-threads
+       '%' => 'co', # toggle-write
+       ' ' => '=^m',
 
-       'a' => ['mi'], # create-alias
-       'b' => ['mo'], # bounce-message
-       '^b'=> ['ci'],
-       '+b'=> [undef], # M <search>~b
-       'c' => ['mv'], # change-folder
-       'C' => ['mi'], # copy-message
-       '+c'=> ['mv'], # change-folder-readonly
-       '+C'=> [undef], # decode-copy
-       'd' => ['co'], # delete-message
-       'D' => ['co arg'], # delete-pattern
-       '^d'=> ['co'], # delete-thread
-       '+d'=> ['co'], # delete-subthread
-       'e' => ['co linkvi'], # edit
-       '^e'=> ['co'], # edit-type
-       '+e'=> [undef], # resend-message
-       'f' => ['mo modem'], # forward-message
-       'F' => ['co'], # flag-message
-       '^f'=> ['mi'], # forget-passphrase
-       'g' => ['mo modem'], # group-reply
-       'G' => ['mi'], # fetch-mail
-       'h' => ['me'], # display-toggle-weed
-       '^i'=> ['po'], # next-new-then-unread
-       '+^i'=> [undef], # previous-new-then-unread
-       'j' => ['pm'], # next-undeleted
-       'k' => ['pm'], # previous-undeleted
-       'J' => ['po'], # next-entry
-       'K' => ['po'], # previous-entry
-       '^k'=> ['ci'], # extract-keys
-       '+k'=> ['mo modem'], # mail-key
-       'l' => ['me'], # limit
-       'L' => ['mo modem'], # list-reply
-       '+l'=> ['ci'], # show-limit
-       'm' => ['mo modem'], # mail
-       'N' => ['co'], # toggle-new
-       '^n'=> ['po'], # next-thread
-       '+n'=> ['po'], # next-subthread
-       'o' => ['me modeo'], # sort-mailbox
-       'O' => ['me modeo'], # sort-reverse
-       'p' => ['ci'], # print-message
-       'P' => ['po'], # parent-message
-       '^p'=> ['po'], # previous-thread
-       '+p'=> ['po'], # previous-subthread
-       '+P'=> [undef], # check-traditional-pgp
-       'q' => ['mv'], # quit
-       'Q' => ['ci arg'], # query
-       'r' => ['mo modem'], # reply
-       'R' => ['mo modem'], # recall-message
-       '^r'=> ['co'], # read-thread
-       '+r'=> ['co'], # read-subthread
-       's' => ['co'], # save-message
-       '+s'=> ['co'], # decode-save
-       'T' => ['co arg'], # tag-pattern
-       '^t'=> ['co'], # untag-pattern
-       '+t'=> ['co'], # tag-thread
-       'u' => ['co'], # undelete-message
-       'U' => ['co arg'], # undelete-pattern
-       '^u'=> ['co'], # undelete-thread
-       '+u'=> ['co'], # undelete-subthread
-       'v' => ['ci'], # view-attachments
-       'V' => ['ci'], # show-version
-       '+v'=> ['me'], # collapse-thread
-       '+V'=> ['me'], # collapse-all
-       'w' => ['co arg modew'], # set-flag
-       'W' => ['co arg modew'], # clear-flag
-       'x' => ['mv'], # exit
-       'y' => ['mv'], # M <change-folder>?<toggle-mailboxes>
+       'a' => 'mi', # create-alias
+       'b' => 'mo', # bounce-message
+       '^b'=> 'ci',
+       '+b'=> undef, # M <search>~b
+       'c' => 'mv', # change-folder
+       'C' => 'mi', # copy-message
+       '+c'=> 'mv', # change-folder-readonly
+       '+C'=> undef, # decode-copy
+       'd' => 'co', # delete-message
+       'D' => 'co arg', # delete-pattern
+       '^d'=> 'co', # delete-thread
+       '+d'=> 'co', # delete-subthread
+       'e' => 'co linkvi', # edit
+       '^e'=> 'co', # edit-type
+       '+e'=> undef, # resend-message
+       'f' => 'mo modem', # forward-message
+       'F' => 'co', # flag-message
+       '^f'=> 'mi', # forget-passphrase
+       'g' => 'mo modem', # group-reply
+       'G' => 'mi', # fetch-mail
+       'h' => 'me', # display-toggle-weed
+       '^i'=> 'po', # next-new-then-unread
+       '+^i'=> undef, # previous-new-then-unread
+       'j' => 'pm', # next-undeleted
+       'k' => 'pm', # previous-undeleted
+       'J' => 'po', # next-entry
+       'K' => 'po', # previous-entry
+       '^k'=> 'ci', # extract-keys
+       '+k'=> 'mo modem', # mail-key
+       'l' => 'me', # limit
+       'L' => 'mo modem', # list-reply
+       '+l'=> 'ci', # show-limit
+       'm' => 'mo modem', # mail
+       'N' => 'co', # toggle-new
+       '^n'=> 'po', # next-thread
+       '+n'=> 'po', # next-subthread
+       'o' => 'me modeo', # sort-mailbox
+       'O' => 'me modeo', # sort-reverse
+       'p' => 'ci', # print-message
+       'P' => 'po', # parent-message
+       '^p'=> 'po', # previous-thread
+       '+p'=> 'po', # previous-subthread
+       '+P'=> undef, # check-traditional-pgp
+       'q' => 'mv', # quit
+       'Q' => 'ci arg', # query
+       'r' => 'mo modem', # reply
+       'R' => 'mo modem', # recall-message
+       '^r'=> 'co', # read-thread
+       '+r'=> 'co', # read-subthread
+       's' => 'co', # save-message
+       '+s'=> 'co', # decode-save
+       'T' => 'co arg', # tag-pattern
+       '^t'=> 'co', # untag-pattern
+       '+t'=> 'co', # tag-thread
+       'u' => 'co', # undelete-message
+       'U' => 'co arg', # undelete-pattern
+       '^u'=> 'co', # undelete-thread
+       '+u'=> 'co', # undelete-subthread
+       'v' => 'ci', # view-attachments
+       'V' => 'ci', # show-version
+       '+v'=> 'me', # collapse-thread
+       '+V'=> 'me', # collapse-all
+       'w' => 'co arg modew', # set-flag
+       'W' => 'co arg modew', # clear-flag
+       'x' => 'mv', # exit
+       'y' => 'mv', # M <change-folder>?<toggle-mailboxes>
 }, # index
 
 'm' => {
        %common,
 
-       '|' => ['co'],
-       'a' => ['mi'],
-       'A' => ['mi'],
-       'b' => ['co'],
-       'c' => ['co'],
-       'C' => ['mi'],
-       'd' => ['co'],
-       'D' => ['co'],
-       '^d'=> ['co'],
-       'e' => ['co linkvi'],
-       'E' => ['co linkvi'],
-       '^e'=> ['co'],
-       'f' => ['co'],
-       '^f'=> ['mi'],
-       '+f'=> ['co'],
-       'F' => ['co'],
-       'G' => ['ci'],
-       'h' => ['ci'],
-       'i' => ['mi'],
-       'l' => ['ci'],
-       'm' => ['co'],
-       'M' => ['co'],
-       '^m'=> ['ci'],
-       'n' => ['mi'],
-       'P' => ['mv mode'],
-       'r' => ['co'],
-       'R' => ['co'],
-       's' => ['co'],
-       'S' => ['co menumS'],
-       't' => ['co'],
-       '^t'=> ['co'],
-       'w' => ['mi'],
-       'u' => ['mi'],
-       'U' => ['co'],
-       'y' => ['mo'],
+       '|' => 'co',
+       'a' => 'mi',
+       'A' => 'mi',
+       'b' => 'co',
+       'c' => 'co',
+       'C' => 'mi',
+       'd' => 'co',
+       'D' => 'co',
+       '^d'=> 'co',
+       'e' => 'co linkvi',
+       'E' => 'co linkvi',
+       '^e'=> 'co',
+       'f' => 'co',
+       '^f'=> 'mi',
+       '+f'=> 'co',
+       'F' => 'co',
+       'G' => 'ci',
+       'h' => 'ci',
+       'i' => 'mi',
+       'l' => 'ci',
+       'm' => 'co',
+       'M' => 'co',
+       '^m'=> 'ci',
+       'n' => 'mi',
+       'P' => 'mv mode',
+       'r' => 'co',
+       'R' => 'co',
+       's' => 'co',
+       'S' => 'co menumS',
+       't' => 'co',
+       '^t'=> 'co',
+       'w' => 'mi',
+       'u' => 'mi',
+       'U' => 'co',
+       'y' => 'mo',
 }, # compose
 
 w => {
-       "\e"=> ['me mode', '+'],
-       'D' => ['co'],
-       'd' => 'wD',
-       'N' => ['co'],
-       'n' => 'wN',
-       'O' => ['co'],
-       'o' => 'wO',
-       'r' => ['co'],
-       'R' => 'wr',
-       '*' => ['co'],
-       '!' => ['co'],
+       "\e"=> 'me mode',
+       'D' => 'co',
+       'd' => '=wD',
+       'N' => 'co',
+       'n' => '=wN',
+       'O' => 'co',
+       'o' => '=wO',
+       'r' => 'co',
+       'R' => '=wr',
+       '*' => 'co',
+       '!' => 'co',
 }, # flag
 
 '/~' => {
-       "\e"=> ['me mode', '+'],
-       A => [undef],
-       b => ['X arg'],
-       B => ['arg'],
-       c => ['arg'],
-       C => ['arg'],
-       d => ['arg'],
-       D => [undef],
-       e => ['arg'],
-       E => [undef],
-       f => ['arg'],
-       F => [undef],
-       g => [undef],
-       G => [undef],
-       h => ['arg'],
-       H => ['arg'],
-       i => ['arg'],
-       k => [undef],
-       L => ['arg'],
-       l => [undef],
-       m => ['arg'],
-       n => ['arg'],
-       N => [undef],
-       O => [undef],
-       p => [undef],
-       P => [undef],
-       Q => [undef],
-       r => ['arg'],
-       R => [undef],
-       s => [undef],
-       S => [undef],
-       t => ['arg'],
-       T => [undef],
-       u => [undef],
-       U => [undef],
-       v => [undef],
-       V => [undef],
-       x => ['arg'],
-       X => ['arg'],
-       y => ['arg'],
-       z => ['arg'],
-       '=' => [undef],
-       '$' => [undef],
-       '(' => ['arg'],
+       "\e"=> 'me mode',
+       A => undef,
+       b => 'X arg',
+       B => 'arg',
+       c => 'arg',
+       C => 'arg',
+       d => 'arg',
+       D => undef,
+       e => 'arg',
+       E => undef,
+       f => 'arg',
+       F => undef,
+       g => undef,
+       G => undef,
+       h => 'arg',
+       H => 'arg',
+       i => 'arg',
+       k => undef,
+       L => 'arg',
+       l => undef,
+       m => 'arg',
+       n => 'arg',
+       N => undef,
+       O => undef,
+       p => undef,
+       P => undef,
+       Q => undef,
+       r => 'arg',
+       R => undef,
+       s => undef,
+       S => undef,
+       t => 'arg',
+       T => undef,
+       u => undef,
+       U => undef,
+       v => undef,
+       V => undef,
+       x => 'arg',
+       X => 'arg',
+       y => 'arg',
+       z => 'arg',
+       '=' => undef,
+       '$' => undef,
+       '(' => 'arg',
 }, # search option
 
 }
index f26ad00..d6d580e 100644 (file)
@@ -2,141 +2,141 @@ use utf8;
 {
 
 '' => {
-       'b' => ['pm'],
-       'j' => ['pm'],
-       'n' => ['pm'],
-       'h' => ['pm'],
-       'l' => ['pm'],
-       'y' => ['pm'],
-       'k' => ['pm'],
-       'u' => ['pm'],
+       'b' => 'pm',
+       'j' => 'pm',
+       'n' => 'pm',
+       'h' => 'pm',
+       'l' => 'pm',
+       'y' => 'pm',
+       'k' => 'pm',
+       'u' => 'pm',
 
-       'B' => ['po'],
-       'J' => ['po'],
-       'N' => ['po'],
-       'H' => ['po'],
-       'L' => ['po'],
-       'Y' => ['po'],
-       'K' => ['po'],
-       'U' => ['po'],
+       'B' => 'po',
+       'J' => 'po',
+       'N' => 'po',
+       'H' => 'po',
+       'L' => 'po',
+       'Y' => 'po',
+       'K' => 'po',
+       'U' => 'po',
 
-       '^b'=> ['po'],
-       '^j'=> ['po'],
-       '^n'=> ['po'],
-       '^h'=> ['po'],
-       '^l'=> ['po'],
-       '^y'=> ['po'],
-       '^k'=> ['po'],
-       '^u'=> ['po'],
+       '^b'=> 'po',
+       '^j'=> 'po',
+       '^n'=> 'po',
+       '^h'=> 'po',
+       '^l'=> 'po',
+       '^y'=> 'po',
+       '^k'=> 'po',
+       '^u'=> 'po',
 
-       'g' => ['po argm'],
-       'm' => ['po argm'],
-       'G' => ['po argm'],
+       'g' => 'po argm',
+       'm' => 'po argm',
+       'G' => 'po argm',
 
-       '?' => ['mv mode?'], #help
-       '+?'=> ['mv'],
-       '/' => ['mi arg mode/'], #whatis
-       '&' => ['mi arg'],
-       '<' => ['pm'], #up
-       '>' => ['pm'], #down
-       '.' => ['pm'], #rest
-       '_' => ['po argM'], #travel
+       '?' => 'mv mode?', #help
+       '+?'=> 'mv',
+       '/' => 'mi arg mode/', #whatis
+       '&' => 'mi arg',
+       '<' => 'pm', #up
+       '>' => 'pm', #down
+       '.' => 'pm', #rest
+       '_' => 'po argM', #travel
 
-       '+2'=> ['co'], #twoweapon
-       'a' => ['co argi'], #apply
-       'A' => ['co'], #armor
-       '^a'=> ['co'], #again
-       '+a'=> ['mi'], #adjust
-       'c' => ['co argm'], #close
-       'C' => ['co arg'], #call
-       '+c'=> ['co arg'], #chat
-       'd' => ['co argi'], #drop
-       'D' => ['co arg modeD'], #Drop
-       '^d'=> ['co argm'], #kick
-       '+d'=> ['co argi'], #dip
-       'e' => ['co argi'], #eat
-       'E' => ['co argi'], #engrave
-       '+e'=> ['co'], #enhance
-       'f' => ['co argm'], #fire
-       'F' => ['co argm'], #fight
-       '+f'=> ['co'], #force
-       'i' => ['mo'], #invent
-       'I' => ['mo arg modeI'], #Invent
-       '+i'=> ['co argi'], #invoke
-       '+j'=> ['co'], #jump
-       '+l'=> ['co'], #loot
-       '+m'=> ['co'], #monster
-       '+n'=> ['mo arg'], #name
-       'o' => ['co argm'], #open
-       'O' => ['mv modeO'], #options
-       '+o'=> ['co argi'], #offer
-       'p' => ['co'], #pay
-       'P' => ['co argi'], #puton
-       '^p'=> ['mi'], #prevmsg
-       '+p'=> ['co arg'], #pray
-       'q' => ['co argi'], #quaff
-       'Q' => ['co argi'], #quiver
-       '+q'=> ['mi'], #quit
-       'r' => ['co argi'], #read
-       'R' => ['co argi'], #remove
-       '^r'=> ['mi'], #redraw
-       '+r'=> ['co argi'], #rub
-       's' => ['co'], #search
-       'S' => ['mi'], #save
-       '+s'=> ['co'], #sit
-       't' => ['co argm'], #throw
-       'T' => ['co argi'], #takeoff
-       '^t'=> ['co'], #'port
-       '+t'=> ['co'], #turn
-       '+u'=> ['co'], #untrap
-       'v' => ['mi'],
-       'V' => ['mi'], #history
-       '+v'=> ['mi'], #version
-       'w' => ['co argi'], #wield
-       'W' => ['co argi'], #wear
-       '+w'=> ['co'], #wipe
-       'x' => ['co'], #xchange
-       'X' => ['mi'], #explore
-       '^x'=> ['mi'], #show
-       'z' => ['co argm'], #zap
-       'Z' => ['co argi'], #Zap
-       '^z'=> ['mi'], #suspend
+       '+2'=> 'co', #twoweapon
+       'a' => 'co argi', #apply
+       'A' => 'co', #armor
+       '^a'=> 'co', #again
+       '+a'=> 'mi', #adjust
+       'c' => 'co argm', #close
+       'C' => 'co arg', #call
+       '+c'=> 'co arg', #chat
+       'd' => 'co argi', #drop
+       'D' => 'co arg modeD', #Drop
+       '^d'=> 'co argm', #kick
+       '+d'=> 'co argi', #dip
+       'e' => 'co argi', #eat
+       'E' => 'co argi', #engrave
+       '+e'=> 'co', #enhance
+       'f' => 'co argm', #fire
+       'F' => 'co argm', #fight
+       '+f'=> 'co', #force
+       'i' => 'mo', #invent
+       'I' => 'mo arg modeI', #Invent
+       '+i'=> 'co argi', #invoke
+       '+j'=> 'co', #jump
+       '+l'=> 'co', #loot
+       '+m'=> 'co', #monster
+       '+n'=> 'mo arg', #name
+       'o' => 'co argm', #open
+       'O' => 'mv modeO', #options
+       '+o'=> 'co argi', #offer
+       'p' => 'co', #pay
+       'P' => 'co argi', #puton
+       '^p'=> 'mi', #prevmsg
+       '+p'=> 'co arg', #pray
+       'q' => 'co argi', #quaff
+       'Q' => 'co argi', #quiver
+       '+q'=> 'mi', #quit
+       'r' => 'co argi', #read
+       'R' => 'co argi', #remove
+       '^r'=> 'mi', #redraw
+       '+r'=> 'co argi', #rub
+       's' => 'co', #search
+       'S' => 'mi', #save
+       '+s'=> 'co', #sit
+       't' => 'co argm', #throw
+       'T' => 'co argi', #takeoff
+       '^t'=> 'co', #'port
+       '+t'=> 'co', #turn
+       '+u'=> 'co', #untrap
+       'v' => 'mi',
+       'V' => 'mi', #history
+       '+v'=> 'mi', #version
+       'w' => 'co argi', #wield
+       'W' => 'co argi', #wear
+       '+w'=> 'co', #wipe
+       'x' => 'co', #xchange
+       'X' => 'mi', #explore
+       '^x'=> 'mi', #show
+       'z' => 'co argm', #zap
+       'Z' => 'co argi', #Zap
+       '^z'=> 'mi', #suspend
 
-       ':' => ['mi'], #look
-       ';' => ['mi argM'], #farlook
-       ',' => ['co'], #pickup
-       '@' => ['mi'],
-       '^' => ['mi argm'], #trap_id
-       ')' => ['mo'],
-       '[' => ['mo'],
-       '=' => ['mo'],
-       '"' => ['mo'],
-       '(' => ['mo'],
-       '*' => ['mo'],
-       '$' => ['mi'], #gold
-       '+' => ['mo'], #spells
-       '\\'=> ['mo'], #known
-       '!' => ['mi'], #sh
-       '#' => ['mv'],
+       ':' => 'mi', #look
+       ';' => 'mi argM', #farlook
+       ',' => 'co', #pickup
+       '@' => 'mi',
+       '^' => 'mi argm', #trap_id
+       ')' => 'mo',
+       '[' => 'mo',
+       '=' => 'mo',
+       '"' => 'mo',
+       '(' => 'mo',
+       '*' => 'mo',
+       '$' => 'mi', #gold
+       '+' => 'mo', #spells
+       '\\'=> 'mo', #known
+       '!' => 'mi', #sh
+       '#' => 'mv',
 },
 
 'D' => {
-       'B' => ['co'],
-       'U' => ['co'],
-       'C' => ['co'],
-       'X' => ['co'],
-       'a' => ['co'],
-       'i' => ['mi'],
-       'u' => ['co'],
-       'm' => ['co argi'],
-       '%' => ['co arg'],
+       'B' => 'co',
+       'U' => 'co',
+       'C' => 'co',
+       'X' => 'co',
+       'a' => 'co',
+       'i' => 'mi',
+       'u' => 'co',
+       'm' => 'co argi',
+       '%' => 'co arg',
 },
 
 'I' => {
-       '*' => ['mi'],
-       'u' => ['mi'],
-       'x' => ['mi'],
-       '$' => ['mi'],
+       '*' => 'mi',
+       'u' => 'mi',
+       'x' => 'mi',
+       '$' => 'mi',
 },
 
 }
index ab43dae..e67e644 100644 (file)
@@ -73,6 +73,10 @@ key => {
        '^x^r' => "reload inputrc",
        '^x^x' => "swap cursor\neXchange",
        '^x^v' => "shell version",
+
+       # globally label escape as meta key
+         "\e" => "+",
+       "^x\e" => "+",
 },
 
 mode => {
index c68488e..b59701d 100644 (file)
@@ -2,99 +2,99 @@ use utf8;
 {
 
 '' => {
-       "\e" => ['mv', '+'],
+       "\e" => 'mv',
 
-       '+<' => ['co'],
-       '+=' => '+?', #TODO: new # emacs, not in v2.0
-       '+>' => ['co'],
-       '^?' => '^h',
-       '+?' => ['ci'],
-       '^@' => ['mv new'], # not in v2.0
+       '+<' => 'co',
+       '+=' => '=+?', #TODO: new # emacs, not in v2.0
+       '+>' => 'co',
+       '^?' => '=^h',
+       '+?' => 'ci',
+       '^@' => 'mv new', # not in v2.0
 
-       '+#' => ['mi new'], # not in v2.0
-       '+&' => ['mi'],
-       '+*' => ['mi new'], # not in v2.0
-       '+.' => ['co'],
-       '+~' => '+&amp;', # emacs
+       '+#' => 'mi new', # not in v2.0
+       '+&' => 'mi',
+       '+*' => 'mi new', # not in v2.0
+       '+.' => 'co',
+       '+~' => '=+&amp;', # emacs
 
-       '^[' => ['mv'],
-       '^+['=> '^i',
-       '+\\'=> ['mo'],
-       '^]' => ['pm arg new'], # not in v2.0
-       '^+]'=> ['pm arg new'], # not in v2.0
-       '^_' => ['co'],
-       '+_' => '+.',
+       '^[' => 'mv',
+       '^+['=> '=^i',
+       '+\\'=> 'mo',
+       '^]' => 'pm arg new', # not in v2.0
+       '^+]'=> 'pm arg new', # not in v2.0
+       '^_' => 'co',
+       '+_' => '=+.',
 
-       '+~' => ['mi ext'], # common emacs => '+&'
-       '+!' => ['mi ext'],
-       '+@' => ['mi ext'],
-       '+$' => ['mi ext'],
-       '+^' => ['co ext'],
-       '+/' => ['ci ext'],
+       '+~' => 'mi ext', # common emacs => '=+&'
+       '+!' => 'mi ext',
+       '+@' => 'mi ext',
+       '+$' => 'mi ext',
+       '+^' => 'co ext',
+       '+/' => 'ci ext',
 
-       '^a' => ['pm'],
-       '^b' => ['pm'],
-       '+b' => ['pm'],
-       '^c' => ['mv ext'],
-       '+c' => ['mi'],
-       '^d' => ['mo'],
-       '+d' => ['mo ring'],
-#      '^e' => ['me'],
-       '^e' => ['pm'],
-       '^f' => ['pm'],
-       '+f' => ['pm'],
-       '^g' => ['mv'],
-       '^+g'=> '^g',
-       '^h' => ['mo'],
-       '^+h'=> ['mo ring'], #TODO
-       '^i' => ['mi'],
-       '^+i'=> '^v^i',
-       '^j' => '^m',
-       '^+j'=> ['me'], #TODO: mode^+j
-       '^k' => ['mo ring'],
-       '^l' => ['ci'],
-       '+l' => ['mi'],
-       '^m' => ['co'],
-       '^+m'=> '^+j',
-       '^n' => ['co'],
-       '+n' => ['co'],
-       '^o' => ['co ext'],
-       '^p' => ['co'],
-       '+p' => ['co'],
-       '^q' => '^v',
-       '^r' => ['co'],
-       '+r' => ['co'],
-       '^+r'=> '+r',
-       '^s' => ['co'],
-       '^t' => ['mi'],
-       '+t' => ['mi'],
-       '^u' => ['mo ring'],
-       '+u' => ['mi'],
-       '^v' => ['mv'],
-       '^w' => ['mo ring'],
-       '^x' => ['me arg mode^x'],
-       '^y' => ['co'],
-       '+y' => ['co ring'],
-       '^+y'=> ["yank arg"],
-       '^z' => ['mv ext'],
+       '^a' => 'pm',
+       '^b' => 'pm',
+       '+b' => 'pm',
+       '^c' => 'mv ext',
+       '+c' => 'mi',
+       '^d' => 'mo',
+       '+d' => 'mo ring',
+#      '^e' => 'me',
+       '^e' => 'pm',
+       '^f' => 'pm',
+       '+f' => 'pm',
+       '^g' => 'mv',
+       '^+g'=> '=^g',
+       '^h' => 'mo',
+       '^+h'=> 'mo ring', #TODO
+       '^i' => 'mi',
+       '^+i'=> '=^v^i',
+       '^j' => '=^m',
+       '^+j'=> 'me', #TODO: mode^+j
+       '^k' => 'mo ring',
+       '^l' => 'ci',
+       '+l' => 'mi',
+       '^m' => 'co',
+       '^+m'=> '=^+j',
+       '^n' => 'co',
+       '+n' => 'co',
+       '^o' => 'co ext',
+       '^p' => 'co',
+       '+p' => 'co',
+       '^q' => '=^v',
+       '^r' => 'co',
+       '+r' => 'co',
+       '^+r'=> '=+r',
+       '^s' => 'co',
+       '^t' => 'mi',
+       '+t' => 'mi',
+       '^u' => 'mo ring',
+       '+u' => 'mi',
+       '^v' => 'mv',
+       '^w' => 'mo ring',
+       '^x' => 'me arg mode^x',
+       '^y' => 'co',
+       '+y' => 'co ring',
+       '^+y'=> "yank arg",
+       '^z' => 'mv ext',
 },
 
 '^x' => {
        lead => "x̂",
 
-       "\e" => ['mv mode', '+'],
+       "\e" => 'mv mode',
 
-       '('  => ['mv'],
-       ')'  => ['mv'],
-       'e'  => ['mv'],
-       '^e' => ['mi ext linkvi'],
-       '^g' => '^g',
-       '^h' => '^u',
-       '^r' => ['mv'],
-       '^u' => '^_',
-       '^x' => ['pm new'], # not in v2.0
-       '^v' => ['ci ext'],
-       '^?' => '^x^h',
+       '('  => 'mv',
+       ')'  => 'mv',
+       'e'  => 'mv',
+       '^e' => 'mi ext linkvi',
+       '^g' => '=^g',
+       '^h' => '=^u',
+       '^r' => 'mv',
+       '^u' => '=^_',
+       '^x' => 'pm new', # not in v2.0
+       '^v' => 'ci ext',
+       '^?' => '=^x^h',
 },
 
 }
index 194aae2..50def0d 100644 (file)
@@ -4,85 +4,85 @@ use utf8;
 # screen version 4.00.03jw4
 
 '' => {
-       'a' => ['g6'],
-       'A' => ['g8 args'], # title
-       '^a'=> [''],
-       'b' => ['g6'], # break
-       'B' => ['g6'], # pow_break
-       '^b'=> 'b',
-       'c' => ['g8'], # screen
-       'C' => ['g1'], # clear
-       '^c'=> 'c',
-       'd' => ['g8'], # detach
-       'D' => ['g8'], # pow_detach
-       '^d'=> 'd',
-       'f' => ['g3'], # flow
-       'F' => ['g3'],
-       '^f'=> 'f',
-       '^g'=> ['g3'], # vbell
-       'h' => ['g5'], # hardcopy
-       'H' => ['g4'], # log
-       '^h'=> '^p',
-       'i' => ['g0'], # info
-       'I' => ['g4'], #XXX
-       '^i'=> ['g1'], # focus
-       'k' => ['g4'], # kill
-       'K' => 'k',
-       'l' => ['g1'], # redisplay
-       'L' => ['g4'], # login
-       '^l'=> 'l',
-       'm' => ['g0'], # lastmsg
-       'M' => ['g4'], # monitor
-       '^m'=> 'm',
-       'n' => ['g2'], # next
-       'N' => ['g0'], # number
-       '^n'=> 'n',
-       'O' => ['g4'], #XXX
-       '^o'=> ['g2'], # other
-       'p' => ['g2'], # prev
-       '^p'=> 'p',
-       'q' => ['g3'], # xon
-       'Q' => ['g1'], # only
-       '^q'=> 'q',
-       'r' => ['g3'], # wrap
-       '^r'=> 'r',
-       's' => ['g3', 'xoff'], # xoff
-       '^s'=> 's',
-       't' => ['g0'], # time
-       '^t'=> 't',
-       'v' => ['g0'],
-       '^v'=> ['g6 arg arg linkdigraphs'], # digraph
-       'w' => ['g0'], # windows
-       'W' => ['g3'], # width
-       '^w'=> 'w',
-       'x' => ['g8'], # lockscreen
-       'X' => ['g1'], # remove
-       '^x'=> 'x',
-       'z' => ['g8'], # suspend
-       'Z' => ['g8'],
-       '^z'=> 'z',
+       'a' => 'g6',
+       'A' => 'g8 args', # title
+       '^a'=> '',
+       'b' => 'g6', # break
+       'B' => 'g6', # pow_break
+       '^b'=> '=b',
+       'c' => 'g8', # screen
+       'C' => 'g1', # clear
+       '^c'=> '=c',
+       'd' => 'g8', # detach
+       'D' => 'g8', # pow_detach
+       '^d'=> '=d',
+       'f' => 'g3', # flow
+       'F' => 'g3',
+       '^f'=> '=f',
+       '^g'=> 'g3', # vbell
+       'h' => 'g5', # hardcopy
+       'H' => 'g4', # log
+       '^h'=> '=^p',
+       'i' => 'g0', # info
+       'I' => 'g4', #XXX
+       '^i'=> 'g1', # focus
+       'k' => 'g4', # kill
+       'K' => '=k',
+       'l' => 'g1', # redisplay
+       'L' => 'g4', # login
+       '^l'=> '=l',
+       'm' => 'g0', # lastmsg
+       'M' => 'g4', # monitor
+       '^m'=> '=m',
+       'n' => 'g2', # next
+       'N' => 'g0', # number
+       '^n'=> '=n',
+       'O' => 'g4', #XXX
+       '^o'=> 'g2', # other
+       'p' => 'g2', # prev
+       '^p'=> '=p',
+       'q' => 'g3', # xon
+       'Q' => 'g1', # only
+       '^q'=> '=q',
+       'r' => 'g3', # wrap
+       '^r'=> '=r',
+       's' => 'g3', # xoff
+       '^s'=> '=s',
+       't' => 'g0', # time
+       '^t'=> '=t',
+       'v' => 'g0',
+       '^v'=> 'g6 arg arg linkdigraphs', # digraph
+       'w' => 'g0', # windows
+       'W' => 'g3', # width
+       '^w'=> '=w',
+       'x' => 'g8', # lockscreen
+       'X' => 'g1', # remove
+       '^x'=> '=x',
+       'z' => 'g8', # suspend
+       'Z' => 'g8',
+       '^z'=> '=z',
 
-       "'" => ['g2 arg'], # select
-       '"' => ['g2'], # windowlist -b
-       ':' => ['g3'], # colon
-       "\e"=> ['g5'], # copy
-       '[' => '^[',
-       '^['=> "\e",
-       '^]'=> ['g6'], # paste .
-       ']' => '^]',
-       '|' => ['g1'], # split -v
-       '{' => ['g6'], # history
-       '}' => ['g6'], # history
-       '=' => ['g5'], # removebuf
-       '^?'=> '^h',
-       '*' => ['g0'], # displays
-       '.' => ['g8'], # dumptermcap
-       ',' => ['g0'], # license
-       '-' => ['g2'], # select -
-       '_' => ['g4'], # silence
-       '>' => ['g5'], # writebuf
-       '<' => ['g5'], # readbuf
-       '^@'=> 'n',
+       "'" => 'g2 arg', # select
+       '"' => 'g2', # windowlist -b
+       ':' => 'g3', # colon
+       "\e"=> 'g5', # copy
+       '[' => '=^[',
+       '^['=> "=\e",
+       '^]'=> 'g6', # paste .
+       ']' => '=^]',
+       '|' => 'g1', # split -v
+       '{' => 'g6', # history
+       '}' => 'g6', # history
+       '=' => 'g5', # removebuf
+       '^?'=> '=^h',
+       '*' => 'g0', # displays
+       '.' => 'g8', # dumptermcap
+       ',' => 'g0', # license
+       '-' => 'g2', # select -
+       '_' => 'g4', # silence
+       '>' => 'g5', # writebuf
+       '<' => 'g5', # readbuf
+       '^@'=> '=n',
 },
 
 }
index e749e91..4fd9527 100644 (file)
--- a/vi.inc.pl
+++ b/vi.inc.pl
@@ -2,423 +2,423 @@ use utf8;
 {
 
 '' => {
-       '~' => ["co undo"],
-       '!' => ["co argm undo modec"],
-       '@' => ["co arg undo"],
-       '#' => ["pm ext vim6"],
-       '$' => ["pm"],
-       '%' => ["pm"],
-       '^' => ["pm"],
-       '&' => ["co undo"],
-       '*' => ["pm ext vim6"],
-       '(' => ['pm'],
-       ')' => ['pm'],
-       '_' => ["pm"],
-       '+' => ["pm"],
-       '`' => ["pm arg"],
-       '0' => ["pm"],
-       '^^'=> ["co"],
-       '-' => ["pm"],
-       '=' => ['co argm undo'],
-       '?' => ["pm arg modec"],
-       ';' => ["pm"],
-       ':' => ["co modec"],
-       "'" => ["pm arg"],
-       '"' => ['co arg'],
-       '\\' => ['me arg'],
-       '^\\' => ["mo arg"],
-       ',' => ["pm"],
-       '<' => ["co argm undo"],
-       '.' => ["co undo"],
-       '>' => ["co argm undo"],
-       '/' => ["pm arg modec"],
-       '[' => ["me arg mode["],
-       '{' => ["pm"],
-       ']' => ["me arg mode]"],
-       '}' => ["pm"],
-       '^]'=> ["po"],
-       '|' => ["pm"],
-
-       'a' => ["mi undo modei"],
-       'A' => ["mi undo modei"],
-       '^a'=> ["co undo"],
-       'b' => ["pm"],
-       'B' => ["pm"],
-       '^b'=> ["pm"],
-       'c' => ["mi argm undo modei"],
-       'C' => ["mi undo modei"],
-       '^c'=> ["co"],
-       'd' => ["co argm undo"],
-       'D' => ["co undo"],
-       '^d'=> ["po"],
-       'e' => ["pm"],
-       'E' => ["pm"],
-       '^e'=> ["po"],
-       'f' => ["pm arg"],
-       'F' => ["pm arg"],
-       '^f'=> ["pm"],
-       'g' => ["me arg modeg"],
-       'G' => ["pm"],
-       '^g'=> ["ci"],
-       'h' => ["pm"],
-       'H' => ["pm"],
-       '^h'=> "h",
-       'i' => ["mi undo modei"],
-       'I' => ["mi undo modei"],
-       '^i'=> ["pm ext vim6"],
-       'j' => ["pm"],
-       'J' => ["co undo"],
-       '^j'=> "j",
-       'k' => ["pm"],
-       'K' => ["co"],
-       'l' => ["pm"],
-       'L' => ["pm"],
-       '^l'=> ["ci"],
-       'm' => ["co arg"],
-       'M' => ["pm"],
-       '^m'=> "+",
-       'n' => ["pm"],
-       'N' => ["pm"],
-       '^n'=> "j",
-       'o' => ["mi undo modei"],
-       'O' => ["mi undo modei"],
-       '^o'=> ["pm ext vim6"],
-       'p' => ["co undo"],
-       'P' => ["co undo"],
-       '^p'=> "k",
-       'q' => ["mo arg"],
-       'Q' => ["mo"],
-       '^q'=> ["ci"], # or ^v
-       'r' => ["co arg undo"],
-       'R' => ["mi undo modei"],
-       '^r'=> ["co undo ext vim6"],
-       's' => ["mi undo modei"],
-       'S' => ["mi undo modei"],
-       '^s'=> ["ci"],
-       't' => ["pm arg"],
-       'T' => ["pm"],
-       '^t'=> ["po"],
-       'u' => ["co undo"],
-       'U' => ["co undo"],
-       '^u'=> ["po"],
-       'v' => ["mv modev"],
-       'V' => ["mv modev"],
-       '^v'=> ["mv modev ext vim6"],
-       'w' => ["pm"],
-       'W' => ["pm"],
-       '^w'=> ["me arg mode^w"],
-       'x' => ["co undo"],
-       'X' => ["co undo"],
-       '^x'=> ["co undo"],
-       'y' => ["co argm"],
-       'Y' => ["co"],
-       '^y'=> ["po"],
-       'z' => ["me arg modez"],
-       'Z' => ["me arg modeZ"],
-       '^z'=> ["ci"],
+       '~' => "co undo",
+       '!' => "co argm undo modec",
+       '@' => "co arg undo",
+       '#' => "pm ext vim6",
+       '$' => "pm",
+       '%' => "pm",
+       '^' => "pm",
+       '&' => "co undo",
+       '*' => "pm ext vim6",
+       '(' => 'pm',
+       ')' => 'pm',
+       '_' => "pm",
+       '+' => "pm",
+       '`' => "pm arg",
+       '0' => "pm",
+       '^^'=> "co",
+       '-' => "pm",
+       '=' => 'co argm undo',
+       '?' => "pm arg modec",
+       ';' => "pm",
+       ':' => "co modec",
+       "'" => "pm arg",
+       '"' => 'co arg',
+       '\\' => 'me arg',
+       '^\\' => "mo arg",
+       ',' => "pm",
+       '<' => "co argm undo",
+       '.' => "co undo",
+       '>' => "co argm undo",
+       '/' => "pm arg modec",
+       '[' => "me arg mode[",
+       '{' => "pm",
+       ']' => "me arg mode]",
+       '}' => "pm",
+       '^]'=> "po",
+       '|' => "pm",
+
+       'a' => "mi undo modei",
+       'A' => "mi undo modei",
+       '^a'=> "co undo",
+       'b' => "pm",
+       'B' => "pm",
+       '^b'=> "pm",
+       'c' => "mi argm undo modei",
+       'C' => "mi undo modei",
+       '^c'=> "co",
+       'd' => "co argm undo",
+       'D' => "co undo",
+       '^d'=> "po",
+       'e' => "pm",
+       'E' => "pm",
+       '^e'=> "po",
+       'f' => "pm arg",
+       'F' => "pm arg",
+       '^f'=> "pm",
+       'g' => "me arg modeg",
+       'G' => "pm",
+       '^g'=> "ci",
+       'h' => "pm",
+       'H' => "pm",
+       '^h'=> "=h",
+       'i' => "mi undo modei",
+       'I' => "mi undo modei",
+       '^i'=> "pm ext vim6",
+       'j' => "pm",
+       'J' => "co undo",
+       '^j'=> "=j",
+       'k' => "pm",
+       'K' => "co",
+       'l' => "pm",
+       'L' => "pm",
+       '^l'=> "ci",
+       'm' => "co arg",
+       'M' => "pm",
+       '^m'=> "=+",
+       'n' => "pm",
+       'N' => "pm",
+       '^n'=> "=j",
+       'o' => "mi undo modei",
+       'O' => "mi undo modei",
+       '^o'=> "pm ext vim6",
+       'p' => "co undo",
+       'P' => "co undo",
+       '^p'=> "=k",
+       'q' => "mo arg",
+       'Q' => "mo",
+       '^q'=> "ci", # or ^v
+       'r' => "co arg undo",
+       'R' => "mi undo modei",
+       '^r'=> "co undo ext vim6",
+       's' => "mi undo modei",
+       'S' => "mi undo modei",
+       '^s'=> "ci",
+       't' => "pm arg",
+       'T' => "pm",
+       '^t'=> "po",
+       'u' => "co undo",
+       'U' => "co undo",
+       '^u'=> "po",
+       'v' => "mv modev",
+       'V' => "mv modev",
+       '^v'=> "mv modev ext vim6",
+       'w' => "pm",
+       'W' => "pm",
+       '^w'=> "me arg mode^w",
+       'x' => "co undo",
+       'X' => "co undo",
+       '^x'=> "co undo",
+       'y' => "co argm",
+       'Y' => "co",
+       '^y'=> "po",
+       'z' => "me arg modez",
+       'Z' => "me arg modeZ",
+       '^z'=> "ci",
 }, # normal mode
 
 g => {
        lead => "g",
 
-       "\e"=> ["mo mode"],
-
-       '~' => ["co argm ext vim6"],
-       '@' => ["co ext vim7 new"],
-       '#' => ["pm ext vim6"],
-       '$' => ["pm"],
-       '^' => ["pm ext vim6"],
-       '&' => ["co"],
-       '*' => ["pm ext vim6"],
-       '_' => ["pm ext vim6"],
-       '+' => ["co ext vim7 new"],
-       '`' => ["pm ext vim6 arg"],
-       '8' => ["ci"],
-       '0' => ["pm ext vim6"],
-       '-' => ["co ext vim7 new"],
-       '^['=> ["mo mode"],
-       ']' => ["po"],
-       '^]'=> ["po"],
-       ';' => ["pm"],
-       "'" => ["pm ext vim6 arg"],
-       '<' => ["co ext vim7 new"],
-       '?' => ["co argm ext vim6"],
-       ',' => ["pm"],
-
-       'a' => ["ci"],
-       '^a'=> ["ci"],
-       'd' => ["pm ext vim6"],
-       'D' => ["pm ext vim6"],
-       'e' => ["pm"],
-       'E' => ["pm"],
-       'f' => ["co ext vim6"],
-       'F' => ["co ext vim7 new"],
-       'g' => ["pm"],
-       '^g'=> ["ci"],
-       'h' => ["mv modev"],
-       'H' => ["mv modev"],
-       '^h'=> ["mv modev ext vim6"],
-       'i' => ["mi undo modei"],
-       'I' => ["mi undo modei"],
-       'j' => ["pm ext vim6"],
-       'J' => ["co"],
-       'k' => ["pm ext vim6"],
-       'm' => ["pm ext vim6"],
-       'o' => ["pm"],
-       'p' => ["co undo"],
-       'P' => ["co"],
-       'q' => ["co argm"],
-       'Q' => ["mo ext vim6"],
-       'r' => ["co arg"],
-       'R' => ["mi undo modei"],
-       's' => ["ci ext vim6"],
-       't' => ["po ext vim7 new"],
-       'T' => ["po ext vim7 new"],
-       'u' => ["co argm ext vim6"], # XXX undo?
-       'U' => ["co undo argm ext vim6"],
-       'v' => ['mv modev'],
-       'V' => ["co"],
-       'w' => ["co argm ext vim7 new"],
-       'x' => ["co ext vim7 new"],
+       "\e"=> "mo mode",
+
+       '~' => "co argm ext vim6",
+       '@' => "co ext vim7 new",
+       '#' => "pm ext vim6",
+       '$' => "pm",
+       '^' => "pm ext vim6",
+       '&' => "co",
+       '*' => "pm ext vim6",
+       '_' => "pm ext vim6",
+       '+' => "co ext vim7 new",
+       '`' => "pm ext vim6 arg",
+       '8' => "ci",
+       '0' => "pm ext vim6",
+       '-' => "co ext vim7 new",
+       '^['=> "mo mode",
+       ']' => "po",
+       '^]'=> "po",
+       ';' => "pm",
+       "'" => "pm ext vim6 arg",
+       '<' => "co ext vim7 new",
+       '?' => "co argm ext vim6",
+       ',' => "pm",
+
+       'a' => "ci",
+       '^a'=> "ci",
+       'd' => "pm ext vim6",
+       'D' => "pm ext vim6",
+       'e' => "pm",
+       'E' => "pm",
+       'f' => "co ext vim6",
+       'F' => "co ext vim7 new",
+       'g' => "pm",
+       '^g'=> "ci",
+       'h' => "mv modev",
+       'H' => "mv modev",
+       '^h'=> "mv modev ext vim6",
+       'i' => "mi undo modei",
+       'I' => "mi undo modei",
+       'j' => "pm ext vim6",
+       'J' => "co",
+       'k' => "pm ext vim6",
+       'm' => "pm ext vim6",
+       'o' => "pm",
+       'p' => "co undo",
+       'P' => "co",
+       'q' => "co argm",
+       'Q' => "mo ext vim6",
+       'r' => "co arg",
+       'R' => "mi undo modei",
+       's' => "ci ext vim6",
+       't' => "po ext vim7 new",
+       'T' => "po ext vim7 new",
+       'u' => "co argm ext vim6", # XXX undo?
+       'U' => "co undo argm ext vim6",
+       'v' => 'mv modev',
+       'V' => "co",
+       'w' => "co argm ext vim7 new",
+       'x' => "co ext vim7 new",
 }, # mode g
 
 Z => {
        lead => "Z",
 
-       "\e"=> ["mo mode"],
-       '^['=> "\e",
+       "\e"=> "mo mode",
+       '^['=> "=\e",
 
-       'Q' => ["co ext vim6"],
-       'Z' => ["co"],
+       'Q' => "co ext vim6",
+       'Z' => "co",
 }, # mode Z
 
 z => {
        lead => "z",
 
-       "\e"=> ["mo mode"],
-
-       '^' => ["po"],
-       '+' => ["po"],
-       '-' => ["po"],
-       '=' => ["co ext vim7 new"],
-       '.' => ["po"],
-       '^['=> "\e",
-
-       'a' => ["co ext vim6 folding"],
-       'A' => ["co ext vim6 folding"],
-       'b' => ["po"],
-       'c' => ["co ext vim6 folding"],
-       'C' => ["co ext vim6 folding"],
-       'd' => ["co ext vim6 folding"],
-       'D' => ["co ext vim6 folding"],
-       'e' => ["po"],
-       'E' => ["co ext vim6 folding"],
-       'f' => ["co argm ext vim6 folding"],
-       'F' => ["co ext vim6 folding"],
-       'g' => ["co ext vim7 new"],
-       'G' => ["co ext vim7 new"],
-       'h' => ["po"],
-       'H' => ["po"],
-       'i' => ["co ext vim6 folding"],
-       'j' => ["pm ext vim6 folding"],
-       'k' => ["pm ext vim6 folding"],
-       'l' => ["po"],
-       'L' => ["po"],
-       '^m'=> ["po"],
-       'm' => ["co ext vim6 folding"],
-       'M' => ["co ext vim6 folding"],
-       'n' => ["co ext vim6 folding"],
-       'N' => ["co ext vim6 folding"],
-       'o' => ["co ext vim6 folding"],
-       'O' => ["co ext vim6 folding"],
-       'r' => ["co ext vim6 folding"],
-       'R' => ["co ext vim6 folding"],
-       's' => ["po"],
-       't' => ["po"],
-       'u' => ["co arg ext vim7 new"],
-       'v' => ["co ext vim6 folding"],
-       'w' => ["co ext vim7 new"],
-       'W' => ["co ext vim7 new"],
-       'x' => ["co ext vim6 folding"],
-       'X' => ["co ext vim6 folding"],
-       'z' => ["po"],
+       "\e"=> "mo mode",
+
+       '^' => "po",
+       '+' => "po",
+       '-' => "po",
+       '=' => "co ext vim7 new",
+       '.' => "po",
+       '^['=> "=\e",
+
+       'a' => "co ext vim6 folding",
+       'A' => "co ext vim6 folding",
+       'b' => "po",
+       'c' => "co ext vim6 folding",
+       'C' => "co ext vim6 folding",
+       'd' => "co ext vim6 folding",
+       'D' => "co ext vim6 folding",
+       'e' => "po",
+       'E' => "co ext vim6 folding",
+       'f' => "co argm ext vim6 folding",
+       'F' => "co ext vim6 folding",
+       'g' => "co ext vim7 new",
+       'G' => "co ext vim7 new",
+       'h' => "po",
+       'H' => "po",
+       'i' => "co ext vim6 folding",
+       'j' => "pm ext vim6 folding",
+       'k' => "pm ext vim6 folding",
+       'l' => "po",
+       'L' => "po",
+       '^m'=> "po",
+       'm' => "co ext vim6 folding",
+       'M' => "co ext vim6 folding",
+       'n' => "co ext vim6 folding",
+       'N' => "co ext vim6 folding",
+       'o' => "co ext vim6 folding",
+       'O' => "co ext vim6 folding",
+       'r' => "co ext vim6 folding",
+       'R' => "co ext vim6 folding",
+       's' => "po",
+       't' => "po",
+       'u' => "co arg ext vim7 new",
+       'v' => "co ext vim6 folding",
+       'w' => "co ext vim7 new",
+       'W' => "co ext vim7 new",
+       'x' => "co ext vim6 folding",
+       'X' => "co ext vim6 folding",
+       'z' => "po",
 }, # mode z
 
 '[' => {
        lead => "[",
 
-       "\e"=> ["mo mode"],
-
-       "`" => ["pm ext vim6"],
-       '#' => ["pm"],
-       '(' => ["pm"],
-       '*' => "[/",
-       '/' => ["pm"],
-       "'" => "[` ^", # ext vim6
-       '{' => ["pm"],
-       '[' => ["pm"],
-       '^['=> "\e",
-       ']' => ["pm"],
-
-       'c' => ["pm"],
-       'd' => ["ci"],
-       'D' => ["co"],
-       '^d'=> ["po"],
-       'f' => "gf",  # deprecated
-       'i' => ['ci'],
-       'I' => ['co'],
-       '^i'=> ['po'],
-       'm' => ["pm"],
-       'p' => ["co"],
-       'P' => ["co"],
-       's' => ["po ext vim7 new"],
-       'S' => ["po ext vim7 new"],
-       'z' => ["pm ext vim6 folding"],
+       "\e"=> "mo mode",
+
+       "`" => "pm ext vim6",
+       '#' => "pm",
+       '(' => "pm",
+       '*' => "=[/",
+       '/' => "pm",
+       "'" => "=[` ^", # ext vim6
+       '{' => "pm",
+       '[' => "pm",
+       '^['=> "=\e",
+       ']' => "pm",
+
+       'c' => "pm",
+       'd' => "ci",
+       'D' => "co",
+       '^d'=> "po",
+       'f' => "=gf",  # deprecated
+       'i' => 'ci',
+       'I' => 'co',
+       '^i'=> 'po',
+       'm' => "pm",
+       'p' => "co",
+       'P' => "co",
+       's' => "po ext vim7 new",
+       'S' => "po ext vim7 new",
+       'z' => "pm ext vim6 folding",
 }, # mode [
 
 ']' => {
        lead => "]",
 
-       "\e"=> ["mo mode"],
-
-       "`" => ["pm ext vim6"],
-       '#' => ["pm"],
-       ')' => ["pm"],
-       '*' => "]/",
-       "'" => "]` ^", # ext vim6
-       '/' => ["pm"],
-       '[' => ["pm"],
-       '^['=> "\e",
-       ']' => ["pm"],
-       '}' => ["pm"],
-
-       'c' => ["pm"],
-       'd' => ["ci"],
-       'D' => ["co"],
-       '^d'=> ["po"],
-       'f' => "gf",  # deprecated
-       'i' => ["ci"],
-       'I' => ["co"],
-       '^i'=> ["po"],
-       'm' => ["pm"],
-       'p' => ["co"],
-       'P' => "[p",
-       's' => ["po ext vim7 new"],
-       'S' => ["po ext vim7 new"],
-       'z' => ["pm ext vim6 folding"],
+       "\e"=> "mo mode",
+
+       "`" => "pm ext vim6",
+       '#' => "pm",
+       ')' => "pm",
+       '*' => "=]/",
+       "'" => "=]` ^", # ext vim6
+       '/' => "pm",
+       '[' => "pm",
+       '^['=> "=\e",
+       ']' => "pm",
+       '}' => "pm",
+
+       'c' => "pm",
+       'd' => "ci",
+       'D' => "co",
+       '^d'=> "po",
+       'f' => "=gf",  # deprecated
+       'i' => "ci",
+       'I' => "co",
+       '^i'=> "po",
+       'm' => "pm",
+       'p' => "co",
+       'P' => "=[p",
+       's' => "po ext vim7 new",
+       'S' => "po ext vim7 new",
+       'z' => "pm ext vim6 folding",
 }, # mode ]
 
 '^w' => {
        lead => "ŵ",
 
-       "\e"=> ["mo mode"],
-
-       '<' => ["po"],
-       '>' => ["po"],
-       '^' => ["co"],
-       '_' => ["po"],
-       '+' => ["po"],
-       '-' => ["po"],
-       '=' => ["po"],
-       '^['=> "\e",
-       ']' => ["po"],
-       '}' => ["po"],
-       '|' => ["po"],
-
-       'b' => ["po"],
-       'c' => ["po"],
-       '^c'=> ["mo mode"],
-       'd' => ["po"],
-       'f' => ["co"],
-       'F' => ["co ext vim7 new"],
-       'g' => ["me arg mode^wg"],
-       'h' => ["po"],
-       'H' => ["po"],
-       'i' => ["po"],
-       'j' => ["po"],
-       'J' => ["po"],
-       'k' => ["po"],
-       'K' => ["po"],
-       'l' => ["po"],
-       'L' => ["po"],
-       'n' => ["co"],
-       'o' => ["po"],
-       'p' => ["po"],
-       'P' => ["po"],
-       'q' => ["co"],
-       'r' => ["po"],
-       'R' => ["po"],
-       's' => ["po"],
-       'S' => "^ws",
-       't' => ["po"],
-       'v' => ["po"],
-       'w' => ["po"],
-       'W' => ["po"],
-       'x' => ["po"],
-       'z' => ["po"],
+       "\e"=> "mo mode",
+
+       '<' => "po",
+       '>' => "po",
+       '^' => "co",
+       '_' => "po",
+       '+' => "po",
+       '-' => "po",
+       '=' => "po",
+       '^['=> "=\e",
+       ']' => "po",
+       '}' => "po",
+       '|' => "po",
+
+       'b' => "po",
+       'c' => "po",
+       '^c'=> "mo mode",
+       'd' => "po",
+       'f' => "co",
+       'F' => "co ext vim7 new",
+       'g' => "me arg mode^wg",
+       'h' => "po",
+       'H' => "po",
+       'i' => "po",
+       'j' => "po",
+       'J' => "po",
+       'k' => "po",
+       'K' => "po",
+       'l' => "po",
+       'L' => "po",
+       'n' => "co",
+       'o' => "po",
+       'p' => "po",
+       'P' => "po",
+       'q' => "co",
+       'r' => "po",
+       'R' => "po",
+       's' => "po",
+       'S' => "=^ws",
+       't' => "po",
+       'v' => "po",
+       'w' => "po",
+       'W' => "po",
+       'x' => "po",
+       'z' => "po",
 }, # mode ^w
 
 '^wg' => {
        lead => "ŵg",
 
-       "\e"=> ["mo mode"],
-       '^['=> "\e",
-       ']' => ["po"],
-       '}' => ["po"],
-       '^]'=> ["po"],
-       'f' => ["co ext vim7 new"],
-       'F' => ["co ext vim7 new"],
+       "\e"=> "mo mode",
+       '^['=> "=\e",
+       ']' => "po",
+       '}' => "po",
+       '^]'=> "po",
+       'f' => "co ext vim7 new",
+       'F' => "co ext vim7 new",
 }, # mode ^w g
 
 v => {
-       "\e"=> ["mo mode"],
-
-       '!' => ["co"],
-       ':' => ["mo modec"],
-       '<' => ["co"],
-       '=' => ['co undo'],
-       '>' => ['co'],
-       '~' => ["co ext vim6"],
-       '^['=> "\e",
-       '^]'=> ["po"],
+       "\e"=> "mo mode",
+
+       '!' => "co",
+       ':' => "mo modec",
+       '<' => "co",
+       '=' => 'co undo',
+       '>' => 'co',
+       '~' => "co ext vim6",
+       '^['=> "=\e",
+       '^]'=> "po",
        '^\\'=>'^\\',
 
-       'a' => ['me modeva arg ext vim6'],
-       'A' => ['mi modei ext vim6'],
-       'c' => ['mi modei ext vim6'],
-       'C' => ['mi modei ext vim6'],
-       '^c'=> ["mo mode"],
-       'd' => ["co ext vim6"],
-       'D' => ["co ext vim6"],
-       'g' => ["me arg modevg"],
-       '^g'=> ["mv"],
-       '^h'=> ['co'],
-       'i' => ["me modeva arg ext vim6"],
-       'I' => ["mi modei ext vim6"], # block
-       'J' => ["co"],
-       'K' => ['co'],
-       'o' => ["pm"],
-       'O' => ["pm"],
-       '^o'=> ["mv"],
-       'p' => ['co'],
-       'P' => ['co'],
-       '^q'=> "^q",
-       'r' => ['co arg'],
-       'R' => "vS",  # "might change in future"
-       '^s'=> "^s",
-       's' => "vc",
-       'S' => ['mi modei ext vim6'],
-       'u' => ["co ext vim6"],
-       'U' => ["co ext vim6"],
-       'v' => ["mv"],
-       'V' => ["mv"],
-       '^v'=> ["mv ext vim6"],
-       'x' => "vd",
-       'X' => "vD",
-       'y' => ["co"],
-       'Y' => ["co"],
-
-       map {$_ => $_} qw(
+       'a' => 'me modeva arg ext vim6',
+       'A' => 'mi modei ext vim6',
+       'c' => 'mi modei ext vim6',
+       'C' => 'mi modei ext vim6',
+       '^c'=> "mo mode",
+       'd' => "co ext vim6",
+       'D' => "co ext vim6",
+       'g' => "me arg modevg",
+       '^g'=> "mv",
+       '^h'=> 'co',
+       'i' => "me modeva arg ext vim6",
+       'I' => "mi modei ext vim6", # block
+       'J' => "co",
+       'K' => 'co',
+       'o' => "pm",
+       'O' => "pm",
+       '^o'=> "mv",
+       'p' => 'co',
+       'P' => 'co',
+       '^q'=> "=^q",
+       'r' => 'co arg',
+       'R' => "=vS",  # "might change in future"
+       '^s'=> "=^s",
+       's' => "=vc",
+       'S' => 'mi modei ext vim6',
+       'u' => "co ext vim6",
+       'U' => "co ext vim6",
+       'v' => "mv",
+       'V' => "mv",
+       '^v'=> "mv ext vim6",
+       'x' => "=vd",
+       'X' => "=vD",
+       'y' => "co",
+       'Y' => "co",
+
+       map { $_ => "=$_" } qw(
                b B ^b ^d e E ^e f F ^f G h H ^i j ^j k l L m M ^m
                n N ^n ^p q ^s t T ^u w W ^w ^y z ^z
                ` # $ % ^ * ( 0 ) [ { ] } ; / ? + - _ |
@@ -428,138 +428,138 @@ v => {
 vg => {
        lead => "g",
 
-       "\e"=> ["mv modev"],
+       "\e"=> "mv modev",
 
-       '^['=> "\e",
-       '?' => ["co ext vim6"],
-       'J' => ['co ext vim6'],
-       'q' => ["co ext vim6"],
-       'v' => 'gv',
-       'w' => ['co ext vim7 new'],
+       '^['=> "=\e",
+       '?' => "co ext vim6",
+       'J' => 'co ext vim6',
+       'q' => "co ext vim6",
+       'v' => "=gv",
+       'w' => 'co ext vim7 new',
 }, # mode v g
 
 va => {
-       "\e"=> ["mv modev"],
-
-       '(' => 'vab',
-       ')' => 'vab',
-       '`' => "va'",
-       "'" => ['pm ext vim7 new'],
-       '"' => "va'",
-       '<' => ['pm ext vim6'],
-       '>' => 'va&lt;',
-       '[' => ['pm ext vim6'],
-       '{' => 'vaB',
-       '^['=> "\e",
-       ']' => 'va[',
-       '}' => 'vaB',
-
-       'b' => ['pm ext vim6'],
-       'B' => ['pm ext vim6'],
-       'p' => ['pm ext vim6'],
-       's' => ['pm ext vim6'],
-       't' => ['pm ext vim7 new'],
-       'w' => ['pm ext vim6'],
-       'W' => ['pm ext vim6'],
+       "\e"=> "mv modev",
+
+       '(' => "=vab",
+       ')' => "=vab",
+       '`' => "=va'",
+       "'" => 'pm ext vim7 new',
+       '"' => "=va'",
+       '<' => 'pm ext vim6',
+       '>' => "=va&lt;",
+       '[' => 'pm ext vim6',
+       '{' => "=vaB",
+       '^['=> "=\e",
+       ']' => "=va[",
+       '}' => "=vaB",
+
+       'b' => 'pm ext vim6',
+       'B' => 'pm ext vim6',
+       'p' => 'pm ext vim6',
+       's' => 'pm ext vim6',
+       't' => 'pm ext vim7 new',
+       'w' => 'pm ext vim6',
+       'W' => 'pm ext vim6',
 }, # mode v a
 
 #c => {
 #      desc => "command-line mode",
 #
-#      '^_' => 'i^_',
-#      '^^' => 'i^^',
+#      '^_' => "=i^_",
+#      '^^' => "=i^^",
 #      '^\\'=>'^\\',
-#      '^a' => [""], #todo
-#      '^b' => ["po"],
-#      '^c' => 'i^c',
-#      '^d' => [""], #todo
-#      '^e' => ["po"],
-#      '^h' => 'i^h',
-#      '^j' => ["co"],
-#      '^k' => 'i^k',
-#      '^l' => [""], #todo
-#      '^n' => [""], #todo
-#      '^p' => [""], #todo
-#      '^r' => 'i^r', # and then some...
+#      '^a' => "", #todo
+#      '^b' => "po",
+#      '^c' => "=i^c",
+#      '^d' => "", #todo
+#      '^e' => "po",
+#      '^h' => "=i^h",
+#      '^j' => "co",
+#      '^k' => "=i^k",
+#      '^l' => "", #todo
+#      '^n' => "", #todo
+#      '^p' => "", #todo
+#      '^r' => "=i^r", # and then some...
 #           ## ["co arg ext vim6"],
-#      '^q' => '^q',
-#      '^u' => 'i^u',
-#      '^v' => 'i^v',
-#      '^w' => 'i^w',
-#      '^y' => ["co"],
+#      '^q' => "=^q",
+#      '^u' => "=i^u",
+#      '^v' => "=i^v",
+#      '^w' => "=i^w",
+#      '^y' => "co",
 #}, # mode c
 
 i => {
-       "\e" => ["mo mode"],
+       "\e" => "mo mode",
 
-       '^@' => ["co"],
-       '^^' => ["co ext vim6"],
-       '^['=> "\e",
-       '^]' => ["co ext vim6"],
-       '^_' => ["co ext vim6"],
+       '^@' => "co",
+       '^^' => "co ext vim6",
+       '^['=> "=\e",
+       '^]' => "co ext vim6",
+       '^_' => "co ext vim6",
        '^\\'=>'^\\',
 
-       '^a' => ["co ext vim6"],
-       '^b' => ["no ext vim6"],
-       '^c' => ["mo mode"],
-       '^d' => ['co'],
-       '^e' => ["co ext vim6"],
-       '^f' => ['co'],
-       '^g' => ["me modei^g arg"],
-       '^h' => ["co"],
-       '^i' => ["co"],
-       '^j' => ["co"],
-       '^k' => ['co arg arg ext vim6 linkdigraphs'],
-       '^l' => ["mo mode ext vim6"],  # insertmode only
-       '^m' => ["co"],
-       '^n' => ["pm ext vim6"],
-       '^o' => ['co'],
-       '^p' => ["pm ext vim6"],
-       '^q' => "^q",  # or i^v
-       '^r' => ['co arg ext vim6'],
-       '^s' => "^s",
-       '^t' => ["co"],
-       '^u' => ["co"],
-       '^v' => ['co linkcharset'],
-       '^w' => ["co"],
-       '^x' => ['me arg modei^x ext vim6'],
-       '^y' => ["co ext vim6"],
-       '^z' => ["ci ext vim6"],  # insertmode only
+       '^a' => "co ext vim6",
+       '^b' => "no ext vim6",
+       '^c' => "mo mode",
+       '^d' => 'co',
+       '^e' => "co ext vim6",
+       '^f' => 'co',
+       '^g' => "me modei^g arg",
+       '^h' => "co",
+       '^i' => "co",
+       '^j' => "co",
+       '^k' => 'co arg arg ext vim6 linkdigraphs',
+       '^l' => "mo mode ext vim6",  # insertmode only
+       '^m' => "co",
+       '^n' => "pm ext vim6",
+       '^o' => 'co',
+       '^p' => "pm ext vim6",
+       '^q' => "=^q",  # or i^v
+       '^r' => 'co arg ext vim6',
+       '^s' => "=^s",
+       '^t' => "co",
+       '^u' => "co",
+       '^v' => 'co linkcharset',
+       '^w' => "co",
+       '^x' => 'me arg modei^x ext vim6',
+       '^y' => "co ext vim6",
+       '^z' => "ci ext vim6",  # insertmode only
 }, # modei
 
 'i^g' => {
        lead => "ĝ",
 
-       "\e"=> ['mi modei'],
+       "\e"=> 'mi modei',
 
-       'k' => ['pm'],
-       'j' => ['pm'],
-       'u' => ['co'],
+       'k' => 'pm',
+       'j' => 'pm',
+       'u' => 'co',
        # other keys (even esc) are not recognized
 }, # mode i ^g
 
 'i^x' => {
        lead => "x̂",
 
-       "\e" => ["mo mode"], # yes, it really leaves insert mode
-
-       '^['=> "\e",
-       '^]' => ['co'],
-       '^d' => ['co'],
-       '^e' => ["po"],
-       '^f' => ['co'],
-       '^i' => ['co'],
-       '^k' => ['co'],
-       '^l' => ['co'],
-       '^n' => ['co'],
-       '^o' => ['co ext vim7 new'],
-       '^p' => ['co'],
-       '^s' => ['co'],
-        's' => 'i^x^s',
-       '^t' => ['co'],
-       '^u' => ['co ext vim7 new'],
-       '^v' => ['co'],
-       '^y' => ["po"],
+       "\e" => "mo mode", # yes, it really leaves insert mode
+
+       '^['=> "=\e",
+       '^]' => 'co',
+       '^d' => 'co',
+       '^e' => "po",
+       '^f' => 'co',
+       '^i' => 'co',
+       '^k' => 'co',
+       '^l' => 'co',
+       '^n' => 'co',
+       '^o' => 'co ext vim7 new',
+       '^p' => 'co',
+       '^s' => 'co',
+        's' => "=i^x^s",
+       '^t' => 'co',
+       '^u' => 'co ext vim7 new',
+       '^v' => 'co',
+       '^y' => "po",
 }, # mode i ^x
 
 # XXX ex mode if you want to go completely wild
index c696edd..6ece38c 100644 (file)
@@ -2,162 +2,162 @@ use utf8;
 {
 
 '' => {
-       '~' => ['cp'],
-       '@' => ['mo arg'],
-       '^' => ['pm'],
-       '0' => '^',
-       '$' => ['pm'],
-       '#' => ['pm'],
-       '*' => ['pm'],
-       '+' => 'zi',
-       '-' => 'zo',
-       '^^'=> ['po'],
-       '?' => ['pm args modec'],
-       '/' => ['pm args modec'],
-       '[' => ['me arg mode['],
-       ']' => ['me arg mode]'],
-       ':' => ['mo args'],
-       ';' => ['me arg args mode;'],
-       "'" => ['pm'],
-       '`' => "'",
-       '|' => ['cp v2 v2.2'],
-
-       'a' => ['mo args'],
-       'A' => ['mo'],
-       '^a'=> ['cp'],
-       'b' => ['po args'],
-       'B' => ['ci'],
-       '^b'=> ['pm'],
-       '^c'=> ['co'],
-       '^d'=> ['pm'],
-       'd' => ['co'],
-       'D' => ['co'],
-       'i' => ['mv'],
-       '^i'=> 'L',
-       '^e'=> 'j',
-       'f' => ['cp args'],
-       'F' => ['mi args'],
-       '^f'=> ['pm'], # spacebar
-       'g' => ['me modeg arg'],
-       'G' => ['pm'],
-       '^g'=> ['ci'],
-       'h' => ['pm'],
-       'H' => ['cp'],
-       'j' => ['pm'],
-       'k' => ['pm'],
-       'l' => ['pm'],
-       'L' => ['cp'],
-       'M' => ['mo arg'],
-       'm' => ['mo arg'],
-       'n' => ['pm'],
-       'N' => ['pm'],
-       '^n'=> ['po'],
-       'o' => ['cp'],
-       'O' => ['cp'],
-       '^o'=> 'H',
-       'p' => ['cp'],
-       'P' => ['mi'],
-       '^p'=> 'gT',
-       'q' => ['mv arg'],
-       'r' => ['co'],
-       'R' => ['cp'],
-       't' => ['mi'],
-       'T' => ['mi'],
-       '^v'=> ['co arg'],
-       '^u'=> ['pm'],
-       'u' => ['mi'],
-       '^x'=> ['cp'],
-       'y' => ['mo'],
-       'Y' => ['mo'],
-       '^y'=> 'k',
-       'z' => ['ci modez arg'],
-       'Z' => ['me modeZ arg'],
-       '^z'=> ['mv'],
+       '~' => 'cp',
+       '@' => 'mo arg',
+       '^' => 'pm',
+       '0' => '=^',
+       '$' => 'pm',
+       '#' => 'pm',
+       '*' => 'pm',
+       '+' => '=zi',
+       '-' => '=zo',
+       '^^'=> 'po',
+       '?' => 'pm args modec',
+       '/' => 'pm args modec',
+       '[' => 'me arg mode[',
+       ']' => 'me arg mode]',
+       ':' => 'mo args',
+       ';' => 'me arg args mode;',
+       "'" => 'pm',
+       '`' => "='",
+       '|' => 'cp v2 v2.2',
+
+       'a' => 'mo args',
+       'A' => 'mo',
+       '^a'=> 'cp',
+       'b' => 'po args',
+       'B' => 'ci',
+       '^b'=> 'pm',
+       '^c'=> 'co',
+       '^d'=> 'pm',
+       'd' => 'co',
+       'D' => 'co',
+       'i' => 'mv',
+       '^i'=> '=L',
+       '^e'=> '=j',
+       'f' => 'cp args',
+       'F' => 'mi args',
+       '^f'=> 'pm', # spacebar
+       'g' => 'me modeg arg',
+       'G' => 'pm',
+       '^g'=> 'ci',
+       'h' => 'pm',
+       'H' => 'cp',
+       'j' => 'pm',
+       'k' => 'pm',
+       'l' => 'pm',
+       'L' => 'cp',
+       'M' => 'mo arg',
+       'm' => 'mo arg',
+       'n' => 'pm',
+       'N' => 'pm',
+       '^n'=> 'po',
+       'o' => 'cp',
+       'O' => 'cp',
+       '^o'=> '=H',
+       'p' => 'cp',
+       'P' => 'mi',
+       '^p'=> '=gT',
+       'q' => 'mv arg',
+       'r' => 'co',
+       'R' => 'cp',
+       't' => 'mi',
+       'T' => 'mi',
+       '^v'=> 'co arg',
+       '^u'=> 'pm',
+       'u' => 'mi',
+       '^x'=> 'cp',
+       'y' => 'mo',
+       'Y' => 'mo',
+       '^y'=> '=k',
+       'z' => 'ci modez arg',
+       'Z' => 'me modeZ arg',
+       '^z'=> 'mv',
 }, # normal mode
 
 g => {
        lead => 'g',
 
-       '0' => ['po'],
-       '$' => ['po'],
-       '^' => 'g0',
-
-       'b' => ['po'],
-       'B' => ['po'],
-       'f' => ['cp'],
-       'F' => ['mo'],
-       '^g'=> ['ci'],
-       'g' => ['pm'],
-       'h' => ['cp'],
-       'H' => ['mi'],
-       'i' => ['pm'],
-       'n' => ['mi arg'],
-       'o' => ['cp arg'],
-       'P' => ['mi'],
-       't' => ['po'],
-       'T' => ['po'],
-       'u' => ['cp'],
-       'U' => ['cp'],
+       '0' => 'po',
+       '$' => 'po',
+       '^' => '=g0',
+
+       'b' => 'po',
+       'B' => 'po',
+       'f' => 'cp',
+       'F' => 'mo',
+       '^g'=> 'ci',
+       'g' => 'pm',
+       'h' => 'cp',
+       'H' => 'mi',
+       'i' => 'pm',
+       'n' => 'mi arg',
+       'o' => 'cp arg',
+       'P' => 'mi',
+       't' => 'po',
+       'T' => 'po',
+       'u' => 'cp',
+       'U' => 'cp',
 }, # mode g
 
 ';' => {
        lead => ';',
 
-       ';' => ['pm'],
-       '?' => ['ci'],
-       'a' => ['mo args'],
-       'b' => ['mi v2'],
-       'c' => ['v2 v2.2'],
-       'f' => ['pm v2'], # previously ';o'
-       'F' => ['mi v2'], # previously ';t'
-       'i' => ['cp v2 v2.2'],
-       'I' => ['mi v2 v2.2'],
-       'o' => ['cp'],
-       'O' => ['cp args'],
-       's' => ['mo'],
-       't' => ['mi'],
-       'T' => ['mi args'],
-       'v' => ['cp'],
-       'w' => ['mi'],
-       'W' => ['mi args'],
-       'y' => ['mo'],
-       'Y' => ['mo'],
+       ';' => 'pm',
+       '?' => 'ci',
+       'a' => 'mo args',
+       'b' => 'mi v2',
+       'c' => 'v2 v2.2',
+       'f' => 'pm v2', # previously ';o'
+       'F' => 'mi v2', # previously ';t'
+       'i' => 'cp v2 v2.2',
+       'I' => 'mi v2 v2.2',
+       'o' => 'cp',
+       'O' => 'cp args',
+       's' => 'mo',
+       't' => 'mi',
+       'T' => 'mi args',
+       'v' => 'cp',
+       'w' => 'mi',
+       'W' => 'mi args',
+       'y' => 'mo',
+       'Y' => 'mo',
 }, # mode ;
 
 ']' => {
        lead => ']',
 
-       'f' => ['pm'],
-       ']' => ['cp'],
+       'f' => 'pm',
+       ']' => 'cp',
 }, # mode ]
 
 '[' => {
        lead => '[',
 
-       'f' => ['pm'],
-       '[' => ['cp'],
+       'f' => 'pm',
+       '[' => 'cp',
 }, # mode [
 
 z => {
        lead => 'z',
 
-       'i' => ['ci'],
-       'm' => ['ci'],
-       'o' => ['ci'],
-       'r' => ['ci'],
-       'z' => ['ci'],
-       'I' => ['ci'],
-       'M' => ['ci'],
-       'O' => ['ci'],
-       'R' => ['ci'],
-       'Z' => ['ci'],
+       'i' => 'ci',
+       'm' => 'ci',
+       'o' => 'ci',
+       'r' => 'ci',
+       'z' => 'ci',
+       'I' => 'ci',
+       'M' => 'ci',
+       'O' => 'ci',
+       'R' => 'ci',
+       'Z' => 'ci',
 }, # mode z
 
 Z => {
        lead => 'Z',
 
-       'Q' => ['mo'],
-       'Z' => ['mo'],
+       'Q' => 'mo',
+       'Z' => 'mo',
 }, # mode Z
 
 }