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);
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);
}
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);
}
my $keys = Shiar_Sheet::Keyboard({
def => {
'lead' => {
- 'A' => 'a', # alias
- 'a' => ['classes'],
+ 'A' => '=a', # alias
+ 'a' => 'classes',
},
},
key => {
{
key => {
+ "\e"=> "alt<>/meta",
+
'b' => "page up",
'd' => 'scroll down',
'f' => "page down",
'(' => "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",
{ # 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',
},
}
'' => {
"\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',
},
}
'/~=' => "dupli<>cate",
'/~$' => "unrefer<>enced",
'/~(' => "in thread",
+
+ # globally label escape as meta key
+ "\e"=> "+",
+ "m\e"=> "+",
+ "w\e"=> "+",
+ "/~\e"=> "+",
},
mode => {
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
);
{
'' => {
%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
}
{
'' => {
- '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',
},
}
'^x^r' => "reload inputrc",
'^x^x' => "swap cursor\neXchange",
'^x^v' => "shell version",
+
+ # globally label escape as meta key
+ "\e" => "+",
+ "^x\e" => "+",
},
mode => {
{
'' => {
- "\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'],
- '+~' => '+&', # emacs
+ '+#' => 'mi new', # not in v2.0
+ '+&' => 'mi',
+ '+*' => 'mi new', # not in v2.0
+ '+.' => 'co',
+ '+~' => '=+&', # 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',
},
}
# 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',
},
}
{
'' => {
- '~' => ["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 ) [ { ] } ; / ? + - _ |
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<',
- '[' => ['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<",
+ '[' => '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
{
'' => {
- '~' => ['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
}