From: Mischa POSLAWSKY Date: Fri, 18 Jun 2010 21:28:29 +0000 (+0000) Subject: overhaul keyboard module include syntax X-Git-Tag: v1.3^0 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/2034c72e12562eda33ce53d92cfef2216b6fcf3e overhaul keyboard module include syntax Separate key functions (classes) from (translatable) descriptions. --- diff --git a/Shiar_Sheet/Keyboard.pm b/Shiar_Sheet/Keyboard.pm index cca8333..7607335 100644 --- a/Shiar_Sheet/Keyboard.pm +++ b/Shiar_Sheet/Keyboard.pm @@ -5,7 +5,7 @@ use warnings; no warnings 'uninitialized'; # save some useless checks for more legible code use Carp; -our $VERSION = 'v1.05'; +our $VERSION = 'v2.00'; my @casedesc = (undef, qw/shift ctrl meta/, 'shift meta'); my @rowdesc = qw(numeric top home bottom); @@ -22,18 +22,22 @@ my %keytrans = qw( ); sub new { - my $self = shift; - my ($keys) = @_; + my $class = shift; + my ($self) = @_; + + croak 'Invalid keyboard definitions specified' unless ref $self eq 'HASH'; + croak 'No key definitions specified' unless ref $self->{def} eq 'HASH'; + $self->{map} ||= 'qwerty'; - croak 'Invalid key table specified' unless ref $keys eq 'HASH'; my $parent = (caller)[0]; # calling module my $sign = do { no strict 'refs'; # temporarily allow variable references \%{ $parent.'::sign' }; # return %sign from parent }; croak "%${parent}::sign not found" unless %$sign; + $self->{sign} = $sign; - bless {sign => $sign, keys => $keys, map => 'qwerty'}, $self; + bless $self, $class; } sub map { @@ -68,25 +72,34 @@ sub keyunalias { $key =~ s/(\S*?)(\+?\^?\S)($|\s.*)/$2/; my $mode = $1; - my $keyinfo = $self->{keys}->{$mode}->{$key}; + my $keyinfo = $self->{def}->{$mode}->{$key}; - return [] unless defined $keyinfo; - return $keyinfo if ref $keyinfo; - return if $ancestry->{$key}++; # endless loop failsafe + return unless defined $keyinfo; + return $keyinfo->[0] if ref $keyinfo; + return '' if $ancestry->{$key}++; # endless loop failsafe return $self->keyunalias($keyinfo, $ancestry); } sub print_key { my $self = shift; - my ($mode, $key, $keyinfo) = @_; - - $keyinfo = [ $self->{sign}->{alias}.$keyinfo, $self->keyunalias($keyinfo)->[1] . ' alias' ] - if defined $keyinfo and not ref $keyinfo; # alias - my ($desc, $flags, $mnem) = @$keyinfo if defined $keyinfo; - defined $desc or $flags = $key eq '^0' ? 'ni' : 'no'; + my ($mode, $key, $flags) = @_; + + my $txt = $self->{key}->{$mode.$key}; + my ($desc, $mnem) = defined $txt ? @$txt : (); + + if (not defined $flags) { + $flags = $key eq '^0' ? 'ni' : 'no'; + } + elsif (not ref $flags) { # alias + $desc = $self->{sign}->{alias} . $flags; + $flags = $self->keyunalias($flags) . ' alias'; + } + else { + $flags = $flags->[0]; + } # $key = $keytrans{$key} if defined $keytrans{$key}; - my $keytxt = $mode . escapehtml($key) if $key ne '^0'; + my $keytxt = $self->{def}{$mode}{lead} . escapehtml($key) if $key ne '^0'; $keytxt .= $self->{sign}->{$1} while $flags =~ s/(?:^| )(arg[a-ln-z]?)\b//; # arguments $keytxt .= "$self->{sign}->{motion}" if $flags =~ s/ ?\bargm\b//; # motion argument $keytxt =~ s{\^(?=.)}{^}; # element around ctrl-identifier @@ -95,7 +108,7 @@ sub print_key { $keytxt = "$keytxt"; $keytxt .= ' '.$desc if defined $desc; $keytxt = qq{$keytxt} if $flags =~ s/ ?\blink(\S*)//; - my $onclick = $flags =~ s/ ?\bmode(\S*)// && defined $self->{keys}{$1} && sprintf( + my $onclick = $flags =~ s/ ?\bmode(\S*)// && defined $self->{def}{$1} && sprintf( ' onclick="setmode(%s)"', $1 eq '' ? '' : sprintf(q{'mode%s'}, escapeclass($1)) ); @@ -112,7 +125,7 @@ sub print_rows { # plus specific mode overrides prefixed by '=' ); my $defrows = shift || [2, 1, 0]; - my @modes = sort keys %{ $self->{keys} }; + my @modes = sort keys %{ $self->{def} }; for (my $row = 0; $row <= $#{ $keyrows{$self->{map}} }; $row++) { my $keyrow = $keyrows{$self->{map}}->[$row]; @@ -127,7 +140,7 @@ sub print_rows { my @caserows = $mode =~ s/(\d+)(?:-(\d+))?$// ? (map {$_ - 1} split //, $row == 0 && $2 || $1) # user override : @$defrows; # default - my $modekeys = $self->{keys}{$mode}; + my $modekeys = $self->{def}{$mode}; for my $case (@caserows) { my $keycase = $keyrow->[$case] or next; @@ -137,14 +150,14 @@ sub print_rows { ' class="%s"', 'mode mode' . escapeclass($basemode) ); printf("

%s: %s

\n", # XXX insert   here to fix msie<=6 - $modekeys->{desc} || "mode $basemode", + $self->{mode}->{$mode} || "mode $basemode", "$rowdesc[$row] row $casedesc[$case]" ); my $caseclass = 'keys'; $caseclass .= ' lead' if defined $modekeys->{lead}; # leading command key shown $caseclass .= " $casedesc[$case]" if defined $casedesc[$case]; print qq{\t\t\n}; } # case @@ -166,10 +179,17 @@ Shiar_Sheet::Keyboard - Output HTML for key sheets our %sign = (alias => 'see: '); my $keys = Shiar_Sheet::Keyboard({ - 'mode' => { - desc => 'mode description', - 'A' => 'a', # alias - 'a' => ['description', 'classes', 'comments (on hover)'], + def => { + 'lead' => { + 'A' => 'a', # alias + 'a' => ['classes'], + }, + }, + key => { + 'leada' => ['description', 'comments (on hover)'], + }, + mode => { + 'lead' => 'mode description', }, }); $keys->map('dvorak') or die "Keyboard map not found"; diff --git a/keyboard.plp b/keyboard.plp index 588aedc..672b214 100644 --- a/keyboard.plp +++ b/keyboard.plp @@ -38,8 +38,9 @@ <: our %sign; -use Shiar_Sheet::Keyboard; +use Shiar_Sheet::Keyboard 2; my $usint = [ + [ 'a' .. 'z'], [qw(Á B ¢ Ð É F G H Í J Œ Ø µ Ñ Ó Ö Ä ® § Þ Ú V Å X Ü Æ)], [qw(á b © ð é f g h í j œ ø µ ñ ó ö ä ® ß þ ú v Ã¥ x ü æ)], [qw(Å ı Ç ð ´ ̉ ˝ Ì£ ˆ ½  Þ ¾ ˜ Ø ∏ Œ ‰ / ˇ ¨ ◊ „ ˛ ¼ ¸)], @@ -47,12 +48,17 @@ my $usint = [ ]; my $keys = Shiar_Sheet::Keyboard->new({ - '' => { + def => { + '' => { + map { $_ => [''] } @{ $usint->[0] } + }, + }, + key => { map { my $i = ord($_) - ord('a'); - $_ => ["$usint->[0]->[$i]
$usint->[1]->[$i]"] + $_ => ["$usint->[1]->[$i]
$usint->[2]->[$i]"] } 'a'..'z' - } + }, }); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows}, [0]); diff --git a/less.eng.inc.pl b/less.eng.inc.pl new file mode 100644 index 0000000..c0afb11 --- /dev/null +++ b/less.eng.inc.pl @@ -0,0 +1,113 @@ +use utf8; +{ + +key => { + 'b' => ["page up"], + 'd' => ['scroll down'], + 'f' => ["page down"], + 'F' => ["follow", 'Forward Forever'], + 'g' => ["(first) line"], + 'G' => ["last line"], + 'h' => ["help"], + 'j' => [$sign{down}], + 'k' => [$sign{up}], + 'm' => ["mark pos$sign{_}ition"], + 'n' => ["next find"], + 'N' => ["prev find"], + 'p' => ["reset position", 'beginning or Percentage'], + 'q' => ["quit"], + 'r' => ["redraw"], + 'R' => ["refresh"], + 's' => ["save to file"], + 't' => ["next tag"], + 'T' => ["prev tag"], + 'u' => ['scroll up'], + 'v' => ["edit"], + 'V' => ["version"], + 'w' => ["page up and set window"], + '^x'=> ["emacs aliases"], + 'z' => ["set page down"], + + '!' => ["shell command"], + '|' => ["pipe till mark"], + ':' => ["com$sign{_}mand"], + '/' => ["find"], + '?' => ["find rev."], + '&' => ["filter match$sign{_}es"], + "'" => ["goto mark"], + '-' => ["toggle option"], + '_' => ["show option"], + '=' => ["file name"], + '+' => ["initial cmd"], + + '(' => ["closing"], + + '^[n' => ["any next find"], + '^[N' => ["any prev find"], + '^[u' => ["mark search", 'Undo'], + '^[(' => ["scroll left"], + '^[)' => ["scroll right"], + + ':d' => ["drop file"], + ':e' => ["open file"], + ':n' => ["next file"], + ':p' => ["prev file"], + ':x' => ["first file"], + + '-a' => ["advance find page"], + '-b' => ["buffer space"], + '-B' => ["static buffer for pipes"], + '-c' => ["clear on scroll"], + '-d' => ["dumb term$sign{_}inal"], + '-D' => ["dos colours"], + '-e' => ["exit after eof"], + '-E' => ["exit at eof"], + '-f' => ["force open"], + '-F' => ["exit if 1 page"], + '-g' => ["hilight last match"], + '-h' => ["scroll back limit"], + '-i' => ["ignore lower$sign{_}c$sign{_}ase"], + '-I' => ["ignore case"], + '-j' => ["top offset"], + '-J' => ["status column"], + '-k' => ["key bind$sign{_}ing$sign{_}s"], + '-L' => [qq[ignore lesso$sign{_}pen filter]], + '-m' => ["med. promp$sign{_}t tog$sign{_}gle"], + '-M' => ["long promp$sign{_}t tog$sign{_}gle"], + '-n' => ["count line num$sign{_}ber$sign{_}s"], + '-N' => ["show line n$sign{_}um$sign{_}ber$sign{_}s"], + '-o' => ["stdin to log"], + '-O' => ["log overwrite"], + '-p' => ["initial search"], + '-P' => ["status line", "Prompt"], + '-q' => ["no info bell", "Quiet"], + '-Q' => ["no warn bell", "Quiet!"], + '-r' => ["raw chars"], + '-R' => ["ansi chars"], + '-s' => ["squeeze blank lines"], + '-S' => ["no line wrap"], + '-t' => ["find tag"], + '-T' => ["tags file"], + '-u' => ['parse \b \r'], + '-U' => ['escape \t \b \r'], + '-w' => ["hilight page d$sign{_}own"], + '-W' => ["hilight forw$sign{_}ard"], + '-x' => ["tab stops"], + '-X' => ["no termcap init"], + '-y' => ["scroll limit fw$sign{_}d"], + '-z' => ["page size"], + '-"' => ["shell quotes"], + '-~' => ["outside tildes toggle"], + '-#' => ["col shift"], + '--' => ["option name"], + '-+' => ["reset option"], +}, + +mode => { + '' => 'normal pager', + '^[' => 'escape keys (hold meta/alt)', + '-' => 'flag identifiers', + ':' => 'colon commands', +}, + +} diff --git a/less.inc.pl b/less.inc.pl index b5572eb..dcd6512 100644 --- a/less.inc.pl +++ b/less.inc.pl @@ -1,79 +1,76 @@ use utf8; - -# less v418 +{ # less v418 '' => { - desc => 'normal pager', - - 'b' => ["page up", 'pm more'], + 'b' => ['pm more'], '^b'=> 'b', - 'd' => ['scroll down', 'pm more'], + 'd' => ['pm more'], '^d'=> 'd', 'e' => 'j', '^e'=> 'j', - 'f' => ["page down", 'pm more'], + 'f' => ['pm more'], '^f'=> 'f', - 'F' => ["follow", 'mo', 'Forward Forever'], - 'g' => ["(first) line", 'pm'], + 'F' => ['mo'], + 'g' => ['pm'], '^g'=> '=', - 'G' => ["last line", 'pm'], - 'h' => ["help", 'mo more'], + 'G' => ['pm'], + 'h' => ['mo more'], 'H' => 'h', - 'j' => [$sign{down}, 'pm'], - 'k' => [$sign{up}, 'pm'], + 'j' => ['pm'], + 'k' => ['pm'], '^k'=> 'k', '^l'=> 'r', # more - 'm' => ["mark pos$sign{_}ition", 'po arg'], + 'm' => ['po arg'], '^m'=> 'j', - 'n' => ["next find", 'co more'], - 'N' => ["prev find", 'co'], + 'n' => ['co more'], + 'N' => ['co'], '^n'=> 'j', - 'p' => ["reset position", 'pm', 'beginning or Percentage'], + 'p' => ['pm'], '^p'=> 'k', - 'q' => ["quit", 'mv more'], + 'q' => ['mv more'], 'Q' => 'q', - 'r' => ["redraw", 'ci'], + 'r' => ['ci'], '^r'=> 'r', - 'R' => ["refresh", 'ci'], - 's' => ["save to file", 'mv arg'], - 't' => ["next tag", 'co'], - 'T' => ["prev tag", 'co'], - 'u' => ['scroll up', 'pm'], + 'R' => ['ci'], + 's' => ['mv arg'], + 't' => ['co'], + 'T' => ['co'], + 'u' => ['pm'], '^u'=> 'u', - 'v' => ["edit", 'mv linkvi more'], + 'v' => ['mv linkvi more'], '^v'=> 'f', - 'V' => ["version", 'ci'], - 'w' => ["page up and set window", 'pm'], - '^x'=> ["emacs aliases", 'mv arg mode^x'], + 'V' => ['ci'], + 'w' => ['pm'], + '^x'=> ['mv arg mode^x'], 'y' => 'k', '^y'=> 'k', - 'z' => ["set page down", 'pm more'], + 'z' => ['pm more'], - '!' => ["shell command", 'mv more'], - '|' => ["pipe till mark", 'mv arg'], - ':' => ["com$sign{_}mand", 'mv arg mode:'], - '/' => ["find", 'co arg more'], - '?' => ["find rev.", 'co arg'], + '!' => ['mv more'], + '|' => ['mv arg'], + ':' => ['mv arg mode:'], + '/' => ['co arg more'], + '?' => ['co arg'], '%' => 'p', - '&' => ["filter match$sign{_}es", 'co arg'], - "'" => ["goto mark", 'po arg'], - '-' => ["toggle option", 'mv arg mode-'], - '_' => ["show option", 'ci arg mode-'], - '=' => ["file name", 'ci more'], - '+' => ["initial cmd", 'mo'], + '&' => ['co arg'], + "'" => ['po arg'], + '-' => ['mv arg mode-'], + '_' => ['ci arg mode-'], + '=' => ['ci more'], + '+' => ['mo'], - '(' => ["closing", 'co'], + '(' => ['co'], '<' => 'g', '>' => 'G', }, -'esc' => { - 'n' => ["any next find", 'co'], - 'N' => ["any prev find", 'co'], - 'u' => ["mark search", 'ci', 'Undo'], +'^[' => { # esc + 'n' => ['co'], + 'N' => ['co'], + 'u' => ['ci'], 'v' => 'b', - '(' => ["scroll left", 'pm'], - ')' => ["scroll right", 'pm'], + '(' => ['pm'], + ')' => ['pm'], '<' => 'g', '>' => 'G', }, @@ -84,64 +81,65 @@ use utf8; #}, ':' => { - 'd' => ["drop file", 'mo'], - 'e' => ["open file", 'mo'], + 'd' => ['mo'], + 'e' => ['mo'], 'f' => '=', - 'n' => ["next file", 'mo more'], - 'p' => ["prev file", 'mo more'], + 'n' => ['mo more'], + 'p' => ['mo more'], 'q' => 'q', 'Q' => ':q', - 'x' => ["first file", 'mo'], + 'x' => ['mo'], }, '-' => { - 'a' => ["advance find page", 'co'], - 'b' => ["buffer space", 'mo arg'], - 'B' => ["static buffer for pipes", 'mo'], - 'c' => ["clear on scroll", 'pm'], - 'd' => ["dumb term$sign{_}inal", 'mv'], - 'D' => ["dos colours", 'mv arg ext'], - 'e' => ["exit after eof", 'mo'], - 'E' => ["exit at eof", 'mo'], - 'f' => ["force open", 'mo'], - 'F' => ["exit if 1 page", 'mo'], - 'g' => ["hilight last match", 'co'], - 'h' => ["scroll back limit", 'pm arg'], - 'i' => ["ignore lower$sign{_}c$sign{_}ase", 'co'], - 'I' => ["ignore case", 'co'], - 'j' => ["top offset", 'po arg'], - 'J' => ["status column", 'ci'], - 'k' => ["key bind$sign{_}ing$sign{_}s", 'mv arg'], - 'L' => [qq[ignore lesso$sign{_}pen filter], 'mv'], - 'm' => ["med. promp$sign{_}t tog$sign{_}gle", 'ci'], - 'M' => ["long promp$sign{_}t tog$sign{_}gle", 'ci'], - 'n' => ["count line num$sign{_}ber$sign{_}s", 'mv'], - 'N' => ["show line n$sign{_}um$sign{_}ber$sign{_}s", 'ci'], - 'o' => ["stdin to log", 'me arg'], - 'O' => ["log overwrite", 'me arg'], - 'p' => ["initial search", 'co arg'], - 'P' => ["status line", 'ci arg', "Prompt"], - 'q' => ["no info bell", 'mv', "Quiet"], - 'Q' => ["no warn bell", 'mv', "Quiet!"], - 'r' => ["raw chars", 'mv'], - 'R' => ["ansi chars", 'mv'], - 's' => ["squeeze blank lines", 'mv'], - 'S' => ["no line wrap", 'mv'], - 't' => ["find tag", 'co arg'], - 'T' => ["tags file", 'co arg'], - 'u' => ['parse \b \r', 'mv'], - 'U' => ['escape \t \b \r', 'mv'], + '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' => ["hilight page d$sign{_}own", 'mv'], - 'W' => ["hilight forw$sign{_}ard", 'mv'], - 'x' => ["tab stops", 'mv arg'], - 'X' => ["no termcap init", 'mv'], - 'y' => ["scroll limit fw$sign{_}d", 'pm arg'], - 'z' => ["page size", 'pm arg'], - '"' => ["shell quotes", 'mv arg'], - '~' => ["outside tildes toggle", 'mv'], - '#' => ["col shift", 'pm arg'], - '-' => ["option name", 'mv arg'], - '+' => ["reset option", 'mv arg'], + 'w' => ['mv'], + 'W' => ['mv'], + 'x' => ['mv arg'], + 'X' => ['mv'], + 'y' => ['pm arg'], + 'z' => ['pm arg'], + '"' => ['mv arg'], + '~' => ['mv'], + '#' => ['pm arg'], + '-' => ['mv arg'], + '+' => ['mv arg'], }, +} diff --git a/less.plp b/less.plp index ce5ca14..52ca471 100644 --- a/less.plp +++ b/less.plp @@ -2,7 +2,7 @@ Html({ title => 'less cheat sheet', - version => 'v1.0', + version => 'v1.1', description => [ "Default bindings of the less pager.", "Clearly shows how much it's more than more.", @@ -26,9 +26,9 @@ Html({
      • -
      • Esc alt<:=$sign{_}:>/meta +
      • Esc alt<:=$sign{_}:>/meta
      -
    • +
      • Esc noop
      @@ -47,8 +47,10 @@ Html({
    <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'less.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'less.eng.inc.pl' or die $@; +$info->{def} = do 'less.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows}, [1,0]); :> diff --git a/mplayer.eng.inc.pl b/mplayer.eng.inc.pl new file mode 100644 index 0000000..c6de943 --- /dev/null +++ b/mplayer.eng.inc.pl @@ -0,0 +1,58 @@ +use utf8; +{ + +key => { + '[' => ["slow down 10%"], + ']' => ["speed up 10%"], + '{' => ["half speed"], + '}' => ["double speed"], + '<' => ["previous file"], + '>' => ["next file"], + 'p' => ["pause"], + '.' => ["step forward"], + 'q' => ["stop and quit"], + '+' => ["audio delay +$sign{_}.1s"], + '-' => ["audio delay -$sign{_}.1s"], + '/' => ["volume decrease"], + '*' => ["volume increase"], + 'm' => ["mute sound"], + '#' => ["cycle audio tr$sign{_}ack$sign{_}s"], + 'f' => ["full$sign{_}screen"], + 'T' => ["stay on top"], + 'w' => ["pan/sc. decr$sign{_}eas$sign{_}e"], + 'e' => ["pan/scan increase"], + 'o' => ["osd state switch"], + 'd' => ["frame drop mode"], + 'v' => ["subtitle visibility"], + 'b' => ["next sub$sign{_}title"], + 'j' => ["prev$sign{_}ious sub$sign{_}title"], + 'g' => ["backward in subtitle list"], #TODO + 'y' => ["forward in subtitle list"], #TODO + 'F' => ["forced subtitles"], + 'a' => ["align subtitles"], + 'c' => ["cycle fs mode"], + 'n' => ["restore video mode"], + 'x' => ["subtitle delay +$sign{_}.1s"], + 'z' => ["subtitle delay -$sign{_}.1s"], + 'r' => ["subtitles up"], + 't' => ["subtitles down"], + 's' => ["screen$sign{_}shot", "-vf screenshot"], + 'S' => ["record screen$sign{_}shot$sign{_}s", "-vf screenshot"], + 'I' => ["filename"], + '!' => ["chapter back"], + '@' => ["chapter forward"], + '1' => ["contrast less"], + '2' => ["contrast more"], + '3' => ["brighter"], + '4' => ["darker"], + '5' => ["hue to red"], + '6' => ["hue to blue"], + '7' => ["saturate"], + '8' => ["de$sign{_}saturate"], +}, + +mode => { + '' => "interactive control", +}, + +} diff --git a/mplayer.inc.pl b/mplayer.inc.pl index 6946c9e..f0874e0 100644 --- a/mplayer.inc.pl +++ b/mplayer.inc.pl @@ -1,56 +1,56 @@ use utf8; +{ '' => { - desc => "interactive control", - - '[' => ["slow down 10%", 'mo'], - ']' => ["speed up 10%", 'mo'], - '{' => ["half speed", 'mo'], - '}' => ["double speed", 'mo'], - '<' => ["previous file", 'me'], - '>' => ["next file", 'me'], - 'p' => ["pause", 'mo'], - '.' => ["step forward", 'mo'], - 'q' => ["stop and quit", 'me'], - '+' => ["audio delay +$sign{_}.1s", 'mi'], - '-' => ["audio delay -$sign{_}.1s", 'mi'], - '/' => ["volume decrease", 'mi'], - '*' => ["volume increase", 'mi'], + '[' => ['mo'], + ']' => ['mo'], + '{' => ['mo'], + '}' => ['mo'], + '<' => ['me'], + '>' => ['me'], + 'p' => ['mo'], + '.' => ['mo'], + 'q' => ['me'], + '+' => ['mi'], + '-' => ['mi'], + '/' => ['mi'], + '*' => ['mi'], '9' => '/', '0' => '*', - 'm' => ["mute sound", 'mi'], - '#' => ["cycle audio tr$sign{_}ack$sign{_}s", 'mi'], - 'f' => ["full$sign{_}screen", 'co'], - 'T' => ["stay on top", 'co'], - 'w' => ["pan/sc. decr$sign{_}eas$sign{_}e", 'co'], - 'e' => ["pan/scan increase", 'co'], - 'o' => ["osd state switch", 'ci'], - 'd' => ["frame drop mode", 'co'], - 'v' => ["subtitle visibility", 'pm'], - 'b' => ["next sub$sign{_}title", 'pm'], - 'j' => ["prev$sign{_}ious sub$sign{_}title", 'pm'], - 'y' => ["forward in subtitle list", 'pm'], #TODO - 'g' => 'y', #TODO - 'F' => ["forced subtitles", 'pm'], - 'a' => ["align subtitles", 'pm'], - 'c' => ["cycle fs mode", 'co ext'], - 'n' => ["restore video mode", 'co ext'], - 'x' => ["subtitle delay +$sign{_}.1s", 'pm'], - 'z' => ["subtitle delay -$sign{_}.1s", 'pm'], - 'r' => ["subtitles up", 'pm'], - 't' => ["subtitles down", 'pm'], - 's' => ["screen$sign{_}shot", 'me ext', "-vf screenshot"], - 'S' => ["record screen$sign{_}shot$sign{_}s", 'me ext', "-vf screenshot"], - 'I' => ["filename", 'ci'], - '!' => ["chapter back", 'mo'], - '@' => ["chapter forward", 'mo'], - '1' => ["contrast less", 'co ext'], - '2' => ["contrast more", 'co ext'], - '3' => ["brighter", 'co ext'], - '4' => ["darker", 'co ext'], - '5' => ["hue to red", 'co ext'], - '6' => ["hue to blue", 'co ext'], - '7' => ["saturate", 'co ext'], - '8' => ["de$sign{_}saturate", 'co ext'], + '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'], }, +} diff --git a/mplayer.plp b/mplayer.plp index 2de974a..ef31e6b 100644 --- a/mplayer.plp +++ b/mplayer.plp @@ -2,7 +2,7 @@ Html({ title => 'mplayer cheat sheet', - version => 'v1.0', + version => 'v1.1', description => [ "Keyboard cheat sheet for the MPlayer media player,", "overviewing the default controls." @@ -30,8 +30,10 @@ Html({
  • <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'mplayer.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'mplayer.eng.inc.pl' or die $@; +$info->{def} = do 'mplayer.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows}, [1,0]); :> diff --git a/mutt.eng.inc.pl b/mutt.eng.inc.pl new file mode 100644 index 0000000..44f0392 --- /dev/null +++ b/mutt.eng.inc.pl @@ -0,0 +1,206 @@ +use utf8; + +my %common = ( + 'H' => ["screen top"], + 'j' => ["entry $sign{down}"], + 'k' => ["entry $sign{up}"], + 'L' => ["screen bottom"], + '^l'=> ["redraw"], + 'M' => ["screen middle"], + '^m'=> ["select"], + 'n' => ["search $sign{down}"], + 'q' => ["exit"], + 't' => ["tag"], + 'z' => ["page $sign{down}"], + 'Z' => ["page $sign{up}"], + '*' => ["last entry"], + '=' => ["first entry"], + ':' => ["enter command"], + ';' => ["apply to tagged"], + '>' => ["line $sign{down}"], + '<' => ["line $sign{up}"], + ']' => ["half page $sign{down}"], + '[' => ["half page $sign{up}"], + '?' => ["help"], + '!' => ["invoke shell"], + '/' => ["search $sign{down}"], + '+/'=> ["search $sign{up}"], +); + +{ +key => { + %common, + + '@' => ["display sender"], + '.' => ["list new mail"], + '|' => ["pipe to shell"], + '$' => ["save mailbox"], + '#' => ["split up thread"], + '&' => ["thread tagged"], + '%' => ["toggle reado$sign{_}nl$sign{_}y"], + + 'a' => ["create alias"], + 'b' => ["bounce"], + '^b'=> ["url$sign{_}view"], + '+b'=> ["search bodies"], + 'c' => ["open folder"], + 'C' => ["copy messag$sign{_}e"], + '+c'=> ["open reado$sign{_}nly"], + '+C'=> ["make plain copy"], + 'd' => ["delete"], + 'D' => ["delete patt$sign{_}er$sign{_}n"], + '^d'=> ["delete thread"], + '+d'=> ["delete subthread"], + 'e' => ["edit"], + '^e'=> ["edit con$sign{_}tent type"], + '+e'=> ["edit+send copy"], + 'f' => ["forward"], + 'F' => ["toggle important"], + '^f'=> ["forget pass$sign{_}phras$sign{_}e"], + 'g' => ["reply to all", 'Group reply'], + 'G' => ["fetch POP", 'Gather new mail'], + 'h' => ["toggle headers"], + '^i'=> ["unread msg $sign{down}"], + '+^i'=> ["unread msg $sign{up}"], + 'j' => ["messag$sign{_}e $sign{down}"], + 'k' => ["messag$sign{_}e $sign{up}"], + 'J' => ["any $sign{down}"], + 'K' => ["any $sign{up}"], + '^k'=> ["extract pub keys"], + '+k'=> ["send public key"], + 'l' => ["limit pattern"], + 'L' => ["reply to list"], + '+l'=> ["show current limit"], + 'm' => ["compo$sign{_}s$sign{_}e mail"], + 'N' => ["toggle new"], + '^n'=> ["thread $sign{down}"], + '+n'=> ["subthr$sign{_}ead $sign{down}"], + 'o' => ["sort"], + 'O' => ["sort reverse"], + 'p' => ["print"], + 'P' => ["to parent"], + '^p'=> ["thread $sign{up}"], + '+p'=> ["subthr$sign{_}ead $sign{up}"], + '+P'=> ["check for pgp"], + 'q' => ["quit"], + 'Q' => ["query addr$sign{_}ess$sign{_}es"], + 'r' => ["reply to sender"], + 'R' => ["recall postpon$sign{_}e$sign{_}d"], + '^r'=> ["mark thread read"], + '+r'=> ["mark sub$sign{_}thread r$sign{_}ead"], + 's' => ["move"], + '+s'=> ["save and delete"], + 'T' => ["tag patt$sign{_}er$sign{_}n"], + '^t'=> ["untag pattern"], + '+t'=> ["tag thread"], + 'u' => ["undo delete"], + 'U' => ["res$sign{_}tore pat$sign{_}t$sign{_}er$sign{_}n"], + '^u'=> ["restore thread"], + '+u'=> ["restore subthread"], + 'v' => ["attach$sign{_}ments"], + 'V' => ["version"], + '+v'=> ["(un)collapse thread"], + '+V'=> ["(un)collapse threads"], + 'w' => ["set flag"], + 'W' => ["clear flag"], + 'x' => ["abort"], + 'y' => ["list incoming mailboxes"], + + (map { 'm'.$_ => $common{$_} } keys %common), + + 'm|' => ["pipe attach$sign{_}m$sign{_}ent"], + 'ma' => ["attach file"], + 'mA' => ["attach messag$sign{_}e"], + 'mb' => ["edit bcc"], + 'mc' => ["edit cc"], + 'mC' => ["copy file"], + 'md' => ["desc$sign{_}ribe attach$sign{_}m$sign{_}ent"], + 'mD' => ["delete attach$sign{_}m$sign{_}ent"], + 'm^d'=> ["dispo$sign{_}sition tog$sign{_}gle"], + 'me' => ["edit body"], + 'mE' => ["edit all"], + 'm^e'=> ["edit encoding"], + 'mf' => ["edit fcc"], + 'm^f'=> ["forget pass$sign{_}phrase"], + 'm+f'=> ["edit from"], + 'mF' => ["filter attach$sign{_}m$sign{_}ent"], + 'mG' => ["get attach$sign{_}m$sign{_}ent"], + 'mh' => ["display message"], + 'mi' => ["run ispell"], + 'ml' => ["print attach$sign{_}m$sign{_}ent"], + 'mm' => ["edit attach$sign{_}m$sign{_}ent", 'Mime-appropriate open'], + 'mM' => ["edit mix"], + 'm^m'=> ["view attach$sign{_}m$sign{_}ent"], + 'mn' => ["new attach$sign{_}m$sign{_}ent"], + 'mP' => ["post$sign{_}pone"], + 'mr' => ["edit reply$sign{_}-to"], + 'mR' => ["rename attach$sign{_}m$sign{_}ent"], + 'ms' => ["edit subject"], + 'mS' => ["s/mime options"], + 'mt' => ["edit to"], + 'm^t'=> ["ctype attach$sign{_}m$sign{_}ent"], + 'mw' => ["copy to folder"], + 'mu' => ["unlink toggle"], + 'mU' => ["encode attach$sign{_}m$sign{_}ent"], + 'my' => ["send"], + + 'wD' => ["deleted"], + 'wN' => ["new"], + 'wO' => ["old"], + 'wr' => ["replied"], + 'w*' => ["tagged"], + 'w!' => ["flagged"], + + '/~A' => ["all"], + '/~b' => ["msg body"], + '/~B' => ["whole msg"], + '/~c' => ["cc address"], + '/~C' => ["to or cc address"], + '/~d' => ["date sent ran$sign{_}g$sign{_}e"], + '/~D' => ["deleted"], + '/~e' => ["sender"], + '/~E' => ["expired"], + '/~f' => ["from"], + '/~F' => ["flagged"], + '/~g' => ["signed"], + '/~G' => ["encryp$sign{_}ted"], + '/~h' => ["header"], + '/~H' => ["spam attr$sign{_}ib$sign{_}ute"], + '/~i' => ["msg id"], + '/~k' => ["pgp key"], + '/~L' => ["receiv$sign{_}d by"], + '/~l' => ["mailing list"], + '/~m' => ["num$sign{_}ber ran$sign{_}g$sign{_}e"], + '/~n' => ["score range"], + '/~N' => ["new"], + '/~O' => ["old"], + '/~p' => ["to you"], + '/~P' => ["by you"], + '/~Q' => ["replies"], + '/~r' => ["receive date ran$sign{_}ge"], + '/~R' => ["read"], + '/~s' => ["subject"], + '/~S' => ["super$sign{_}seded"], + '/~t' => ["to address"], + '/~T' => ["tagged"], + '/~u' => ["subscr$sign{_}ibed list"], + '/~U' => ["unread"], + '/~v' => ["collapsed thread"], + '/~V' => ["verified"], + '/~x' => ["refer$sign{_}ence"], + '/~X' => ["attach$sign{_}ments"], + '/~y' => ["x-label"], + '/~z' => ["size range"], + '/~=' => ["dupli$sign{_}cate"], + '/~$' => ["unrefer$sign{_}enced"], + '/~(' => ["in thread"], +}, + +mode => { + '' => 'index', + 'm' => 'compose (m)', + w => 'message flags (w)', + '/~' => 'search flags (/~)', +}, + +} diff --git a/mutt.inc.pl b/mutt.inc.pl index 8dfaa02..21ca05b 100644 --- a/mutt.inc.pl +++ b/mutt.inc.pl @@ -1,217 +1,212 @@ use utf8; my %common = ( - 'H' => ["screen top", 'pm'], # top-page - 'j' => ["entry $sign{down}", 'pm'], # next-entry, next-undeleted - 'k' => ["entry $sign{up}", 'pm'], # previous-entry, previous-undeleted - 'L' => ["screen bottom", 'pm'], # bottom-page - '^l'=> ["redraw", 'ci'], # refresh - 'M' => ["screen middle", 'pm'], # middle-page - '^m'=> ["select", 'mi mode^m'], # select-entry, display-message - 'n' => ["search $sign{down}", 'po'], # search-next - 'q' => ["exit", 'mv mode'], # exit - 't' => ["tag", 'co'], # tag-entry - 'z' => ["page $sign{down}", 'pm'], # next-page - 'Z' => ["page $sign{up}", '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 - '*' => ["last entry", 'pm'], # last-entry - '=' => ["first entry", 'pm'], # first-entry - ':' => ["enter command", 'mi'], # enter-command - ';' => ["apply to tagged", 'mi arg'], # tag-prefix - '>' => ["line $sign{down}", 'pm'], # next-line - '<' => ["line $sign{up}", 'pm'], # previous-line - ']' => ["half page $sign{down}", 'pm'], # half-down - '[' => ["half page $sign{up}", 'pm'], # half-up - '?' => ["help", 'ci'], # help - '!' => ["invoke shell", 'ci arg'], # shell - '/' => ["search $sign{down}", 'po arg mode/~'], # search - '+/'=> ["search $sign{up}", '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 ); -'' => { - desc => 'index', +{ +'' => { %common, - '@' => ["display sender", 'ci'], # display-address - '.' => ["list new mail", 'mv'], # buffy-list #TODO - '|' => ["pipe to shell", 'mi'], # pipe-message - '$' => ["save mailbox", 'co'], # sync-mailbox - '#' => ["split up thread", 'co'], # break-thread - '&' => ["thread tagged", 'co'], # link-threads - '%' => ["toggle reado$sign{_}nl$sign{_}y", 'co'], # toggle-write + '@' => ['ci'], # display-address + '.' => ['mv'], # buffy-list #TODO + '|' => ['mi'], # pipe-message + '$' => ['co'], # sync-mailbox + '#' => ['co'], # break-thread + '&' => ['co'], # link-threads + '%' => ['co'], # toggle-write ' ' => '^m', - 'a' => ["create alias", 'mi'], # create-alias - 'b' => ["bounce", 'mo'], # bounce-message - '^b'=> ["url$sign{_}view", 'ci'], - '+b'=> ["search bodies"], # M ~b - 'c' => ["open folder", 'mv'], # change-folder - 'C' => ["copy messag$sign{_}e", 'mi'], # copy-message - '+c'=> ["open reado$sign{_}nly", 'mv'], # change-folder-readonly - '+C'=> ["make plain copy"], # decode-copy - 'd' => ["delete", 'co'], # delete-message - 'D' => ["delete patt$sign{_}er$sign{_}n", 'co arg'], # delete-pattern - '^d'=> ["delete thread", 'co'], # delete-thread - '+d'=> ["delete subthread", 'co'], # delete-subthread - 'e' => ["edit", 'co'], # edit - '^e'=> ["edit con$sign{_}tent type", 'co'], # edit-type - '+e'=> ["edit+send copy"], # resend-message - 'f' => ["forward", 'mo modem'], # forward-message - 'F' => ["toggle important", 'co'], # flag-message - '^f'=> ["forget pass$sign{_}phras$sign{_}e", 'mi'], # forget-passphrase - 'g' => ["reply to all", 'mo modem', 'Group reply'], # group-reply - 'G' => ["fetch POP", 'mi', 'Gather new mail'], # fetch-mail - 'h' => ["toggle headers", 'me'], # display-toggle-weed - '^i'=> ["unread msg $sign{down}", 'po'], # next-new-then-unread - '+^i'=> ["unread msg $sign{up}"], # previous-new-then-unread - 'j' => ["messag$sign{_}e $sign{down}", 'pm'], # next-undeleted - 'k' => ["messag$sign{_}e $sign{up}", 'pm'], # previous-undeleted - 'J' => ["any $sign{down}", 'po'], # next-entry - 'K' => ["any $sign{up}", 'po'], # previous-entry - '^k'=> ["extract pub keys", 'ci'], # extract-keys - '+k'=> ["send public key", 'mo modem'], # mail-key - 'l' => ["limit pattern", 'me'], # limit - 'L' => ["reply to list", 'mo modem'], # list-reply - '+l'=> ["show current limit", 'ci'], # show-limit - 'm' => ["compo$sign{_}s$sign{_}e mail", 'mo modem'], # mail - 'N' => ["toggle new", 'co'], # toggle-new - '^n'=> ["thread $sign{down}", 'po'], # next-thread - '+n'=> ["subthr$sign{_}ead $sign{down}", 'po'], # next-subthread - 'o' => ["sort", 'me modeo'], # sort-mailbox - 'O' => ["sort reverse", 'me modeo'], # sort-reverse - 'p' => ["print", 'ci'], # print-message - 'P' => ["to parent", 'po'], # parent-message - '^p'=> ["thread $sign{up}", 'po'], # previous-thread - '+p'=> ["subthr$sign{_}ead $sign{up}", 'po'], # previous-subthread - '+P'=> ["check for pgp"], # check-traditional-pgp - 'q' => ["quit", 'mv'], # quit - 'Q' => ["query addr$sign{_}ess$sign{_}es", 'ci arg'], # query - 'r' => ["reply to sender", 'mo modem'], # reply - 'R' => ["recall postpon$sign{_}e$sign{_}d", 'mo modem'], # recall-message - '^r'=> ["mark thread read", 'co'], # read-thread - '+r'=> ["mark sub$sign{_}thread r$sign{_}ead", 'co'], # read-subthread - 's' => ["move", 'co'], # save-message - '+s'=> ["save and delete", 'co'], # decode-save - 'T' => ["tag patt$sign{_}er$sign{_}n", 'co arg'], # tag-pattern - '^t'=> ["untag pattern", 'co'], # untag-pattern - '+t'=> ["tag thread", 'co'], # tag-thread - 'u' => ["undo delete", 'co'], # undelete-message - 'U' => ["res$sign{_}tore pat$sign{_}t$sign{_}er$sign{_}n", 'co arg'], # undelete-pattern - '^u'=> ["restore thread", 'co'], # undelete-thread - '+u'=> ["restore subthread", 'co'], # undelete-subthread - 'v' => ["attach$sign{_}ments", 'ci'], # view-attachments - 'V' => ["version", 'ci'], # show-version - '+v'=> ["(un)collapse thread", 'me'], # collapse-thread - '+V'=> ["(un)collapse threads", 'me'], # collapse-all - 'w' => ["set flag", 'co arg modew'], # set-flag - 'W' => ["clear flag", 'co arg modew'], # clear-flag - 'x' => ["abort", 'mv'], # exit - 'y' => ["list incoming mailboxes", 'mv'], # M ? + 'a' => ['mi'], # create-alias + 'b' => ['mo'], # bounce-message + '^b'=> ['ci'], + '+b'=> [undef], # M ~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'], # 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 ? }, # index 'm' => { - desc => 'compose (m)', - %common, - '|' => ["pipe attach$sign{_}m$sign{_}ent", 'co'], - 'a' => ["attach file", 'mi'], - 'A' => ["attach messag$sign{_}e", 'mi'], - 'b' => ["edit bcc", 'co'], - 'c' => ["edit cc", 'co'], - 'C' => ["copy file", 'mi'], - 'd' => ["desc$sign{_}ribe attach$sign{_}m$sign{_}ent", 'co'], - 'D' => ["delete attach$sign{_}m$sign{_}ent", 'co'], - '^d'=> ["dispo$sign{_}sition tog$sign{_}gle", 'co'], - 'e' => ["edit body", 'co linkvi'], - 'E' => ["edit all", 'co linkvi'], - '^e'=> ["edit encoding", 'co'], - 'f' => ["edit fcc", 'co'], - '^f'=> ["forget pass$sign{_}phrase", 'mi'], - '+f'=> ["edit from", 'co'], - 'F' => ["filter attach$sign{_}m$sign{_}ent", 'co'], - 'G' => ["get attach$sign{_}m$sign{_}ent", 'ci'], - 'h' => ["display message", 'ci'], - 'i' => ["run ispell", 'mi'], - 'l' => ["print attach$sign{_}m$sign{_}ent", 'ci'], - 'm' => ["edit attach$sign{_}m$sign{_}ent", 'co', 'Mime-appropriate open'], - 'M' => ["edit mix", 'co'], - '^m'=> ["view attach$sign{_}m$sign{_}ent", 'ci'], - 'n' => ["new attach$sign{_}m$sign{_}ent", 'mi'], - 'P' => ["post$sign{_}pone", 'mv mode'], - 'r' => ["edit reply$sign{_}-to", 'co'], - 'R' => ["rename attach$sign{_}m$sign{_}ent", 'co'], - 's' => ["edit subject", 'co'], - 'S' => ["s/mime options", 'co menumS'], - 't' => ["edit to", 'co'], - '^t'=> ["ctype attach$sign{_}m$sign{_}ent", 'co'], - 'w' => ["copy to folder", 'mi'], - 'u' => ["unlink toggle", 'mi'], - 'U' => ["encode attach$sign{_}m$sign{_}ent", 'co'], - 'y' => ["send", '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 => { - desc => 'message flags (w)', - - 'D' => ["deleted", 'co'], + 'D' => ['co'], 'd' => 'wD', - 'N' => ["new", 'co'], + 'N' => ['co'], 'n' => 'wN', - 'O' => ["old", 'co'], + 'O' => ['co'], 'o' => 'wO', - 'r' => ["replied", 'co'], + 'r' => ['co'], 'R' => 'wr', - '*' => ["tagged", 'co'], - '!' => ["flagged", 'co'], + '*' => ['co'], + '!' => ['co'], }, # flag '/~' => { - desc => 'search flags (/~)', - - A => ["all"], - b => ["msg body", 'X arg'], - B => ["whole msg", 'arg'], - c => ["cc address", 'arg'], - C => ["to or cc address", 'arg'], - d => ["date sent ran$sign{_}g$sign{_}e", 'arg'], - D => ["deleted"], - e => ["sender", 'arg'], - E => ["expired"], - f => ["from", 'arg'], - F => ["flagged"], - g => ["signed"], - G => ["encryp$sign{_}ted"], - h => ["header", 'arg'], - H => ["spam attr$sign{_}ib$sign{_}ute", 'arg'], - i => ["msg id", 'arg'], - k => ["pgp key"], - L => ["receiv$sign{_}d by", 'arg'], - l => ["mailing list"], - m => ["num$sign{_}ber ran$sign{_}g$sign{_}e", 'arg'], - n => ["score range", 'arg'], - N => ["new"], - O => ["old"], - p => ["to you"], - P => ["by you"], - Q => ["replies"], - r => ["receive date ran$sign{_}ge", 'arg'], - R => ["read"], - s => ["subject"], - S => ["super$sign{_}seded"], - t => ["to address", 'arg'], - T => ["tagged"], - u => ["subscr$sign{_}ibed list"], - U => ["unread"], - v => ["collapsed thread"], - V => ["verified"], - x => ["refer$sign{_}ence", 'arg'], - X => ["attach$sign{_}ments", 'arg'], - y => ["x-label", 'arg'], - z => ["size range", 'arg'], - '=' => ["dupli$sign{_}cate"], - '$' => ["unrefer$sign{_}enced"], - '(' => ["in thread", 'arg'], + 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 +} diff --git a/mutt.plp b/mutt.plp index ec4d0a2..f3909fe 100644 --- a/mutt.plp +++ b/mutt.plp @@ -2,7 +2,7 @@ Html({ title => 'mutt cheat sheet', - version => 'v1.0', + version => 'v1.1', description => [ "Cheat sheet for the Mutt e-mail client,", "showing the default binding for each key.", @@ -30,8 +30,10 @@ Html({ <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'mutt.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'mutt.eng.inc.pl' or die $@; +$info->{def} = do 'mutt.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows}); :> diff --git a/nethack.eng.inc.pl b/nethack.eng.inc.pl new file mode 100644 index 0000000..be69164 --- /dev/null +++ b/nethack.eng.inc.pl @@ -0,0 +1,142 @@ +use utf8; +{ + +key => { + 'b' => ["step left down", 'numpad 1'], + 'j' => ["step down", 'numpad 2'], + 'n' => ["step right down", 'numpad 3'], + 'h' => ["step left", 'numpad 4'], + 'l' => ["step right", 'numpad 6'], + 'y' => ["step left up", 'numpad 7'], + 'k' => ["step up", 'numpad 8'], + 'u' => ["step right up", 'numpad 9'], + + 'B' => ["go left down", 'shift numpad 1'], + 'J' => ["go down", 'shift numpad 2'], + 'N' => ["go right down", 'shift numpad 3'], + 'H' => ["go left", 'shift numpad 4'], + 'L' => ["go right", 'shift numpad 6'], + 'Y' => ["go left up", 'shift numpad 7'], + 'K' => ["go up", 'shift numpad 8'], + 'U' => ["go right up", 'shift numpad 9'], + + '^b'=> ["run left down", 'numpad 5 1'], + '^j'=> ["run down", 'numpad 5 2'], + '^n'=> ["run right down", 'numpad 5 3'], + '^h'=> ["run left", 'numpad 5 4'], + '^l'=> ["run right", 'numpad 5 6'], + '^y'=> ["run left up", 'numpad 5 7'], + '^k'=> ["run up", 'numpad 5 8'], + '^u'=> ["run right up", 'numpad 5 9'], + + 'g' => ["run until interest"], + 'm' => ["m$sign{_}ove blind", 'no pickup'], + 'G' => ["g any$sign{_}where", "follow branches"], + + '?' => ["help menu"], + '+?'=> ["more help"], + '/' => ["explain symbol"], + '&' => ["tell com$sign{_}m$sign{_}and"], + '<' => ["climb up ladder"], + '>' => ["desc$sign{_}ent ladder"], + '.' => ["rest (noop)"], + '_' => ["travel to"], + + '+2'=> ["two$sign{_}weapon toggle"], + 'a' => ["apply tool"], + 'A' => ["remove all armor"], + '^a'=> ["redo comm$sign{_}and", 'Again'], + '+a'=> ["adjust inv$sign{_}ent$sign{_}ory"], + 'c' => ["close door"], + 'C' => ["call monster"], + '+c'=> ["chat"], + 'd' => ["drop item"], + 'D' => ["drop items"], + '^d'=> ["kick"], + '+d'=> ["dip"], + 'e' => ["eat food"], + 'E' => ["en$sign{_}grave"], + '+e'=> ["weapon skills", 'Enhance'], + 'f' => ["fire quiver"], + 'F' => ["fight monster"], + '+f'=> ["force lock"], + 'i' => ["invent$sign{_}ory"], + 'I' => ["invent$sign{_}ory part"], + '+i'=> ["invoke object"], + '+j'=> ["jump"], + '+l'=> ["loot"], + '+m'=> ["mons$sign{_}ter abil$sign{_}ity"], + '+n'=> ["name item$sign{_}(s)"], + 'o' => ["open door"], + 'O' => ["options"], + '+o'=> ["offer sacrifice"], + 'p' => ["pay bill"], + 'P' => ["put on"], + '^p'=> ["repeat message"], + '+p'=> ["pray"], + 'q' => ["drink", 'Quaff'], + 'Q' => ["quiver ammo"], + '+q'=> ["exit game", 'Quit'], + 'r' => ["read scroll"], + 'R' => ["put off", 'Remove accessory'], + '^r'=> ["redraw"], + '+r'=> ["rub object"], + 's' => ["search secrets"], + 'S' => ["save game"], + '+s'=> ["sit down"], + 't' => ["throw$sign{_}/shoot"], + 'T' => ["remove armor"], + '^t'=> ["teleport"], + '+t'=> ["turn undead"], + '+u'=> ["untrap"], + 'v' => ["version"], + 'V' => ["verbose version"], + '+v'=> ["compile details"], + 'w' => ["wield weap$sign{_}on"], + 'W' => ["wear armor"], + '+w'=> ["wipe face"], + 'x' => ["swap weapons", 'Xchange'], + 'X' => ["explore mode"], + '^x'=> ["show stats"], + 'z' => ["zap wand"], + 'Z' => ["cast spell"], + '^z'=> ["suspend game"], + + ':' => ["look here"], + ';' => ["look else$sign{_}where"], + ',' => ["pick up"], + '@' => ["toggle pick$sign{_}up"], + '^' => ["show trap"], + ')' => ["show weapon"], + '[' => ["show armor"], + '=' => ["show rings"], + '"' => ["show amulet"], + '(' => ["show tools"], + '*' => ["show equip$sign{_}ment"], + '$' => ["count gold"], + '+' => ["list spells"], + '\\'=> ["discover$sign{_}ed obj$sign{_}ects"], + '!' => ["shell escape"], + '#' => ["more comm$sign{_}ands"], + + 'DB' => ['drop blessed'], + 'DU' => ['drop uncursed'], + 'DC' => ['drop cursed'], + 'DX' => ['drop unknown'], + 'Da' => ['drop all'], + 'Di' => ["invent$sign{_}ory"], + 'Du' => ['drop unpaid'], + 'Dm' => ['drop any'], + 'D%' => ['drop more'], + + 'I*' => ['list gems'], + 'Iu' => ['list unpaid'], + 'Ix' => ['list billed'], + 'I$' => ['count money'], +}, + +mode => { + '' => 'normal gameplay', +}, + +} diff --git a/nethack.inc.pl b/nethack.inc.pl index 3162e92..f26ad00 100644 --- a/nethack.inc.pl +++ b/nethack.inc.pl @@ -1,142 +1,142 @@ use utf8; +{ '' => { - desc => 'normal gameplay', + 'b' => ['pm'], + 'j' => ['pm'], + 'n' => ['pm'], + 'h' => ['pm'], + 'l' => ['pm'], + 'y' => ['pm'], + 'k' => ['pm'], + 'u' => ['pm'], - 'b' => ["step left down", 'pm', 'numpad 1'], - 'j' => ["step down", 'pm', 'numpad 2'], - 'n' => ["step right down", 'pm', 'numpad 3'], - 'h' => ["step left", 'pm', 'numpad 4'], - 'l' => ["step right", 'pm', 'numpad 6'], - 'y' => ["step left up", 'pm', 'numpad 7'], - 'k' => ["step up", 'pm', 'numpad 8'], - 'u' => ["step right up", 'pm', 'numpad 9'], + 'B' => ['po'], + 'J' => ['po'], + 'N' => ['po'], + 'H' => ['po'], + 'L' => ['po'], + 'Y' => ['po'], + 'K' => ['po'], + 'U' => ['po'], - 'B' => ["go left down", 'po', 'shift numpad 1'], - 'J' => ["go down", 'po', 'shift numpad 2'], - 'N' => ["go right down", 'po', 'shift numpad 3'], - 'H' => ["go left", 'po', 'shift numpad 4'], - 'L' => ["go right", 'po', 'shift numpad 6'], - 'Y' => ["go left up", 'po', 'shift numpad 7'], - 'K' => ["go up", 'po', 'shift numpad 8'], - 'U' => ["go right up", 'po', 'shift numpad 9'], + '^b'=> ['po'], + '^j'=> ['po'], + '^n'=> ['po'], + '^h'=> ['po'], + '^l'=> ['po'], + '^y'=> ['po'], + '^k'=> ['po'], + '^u'=> ['po'], - '^b'=> ["run left down", 'po', 'numpad 5 1'], - '^j'=> ["run down", 'po', 'numpad 5 2'], - '^n'=> ["run right down", 'po', 'numpad 5 3'], - '^h'=> ["run left", 'po', 'numpad 5 4'], - '^l'=> ["run right", 'po', 'numpad 5 6'], - '^y'=> ["run left up", 'po', 'numpad 5 7'], - '^k'=> ["run up", 'po', 'numpad 5 8'], - '^u'=> ["run right up", 'po', 'numpad 5 9'], + 'g' => ['po argm'], + 'm' => ['po argm'], + 'G' => ['po argm'], - 'g' => ["run until interest", 'po argm'], - 'm' => ["m$sign{_}ove blind", 'po argm', 'no pickup'], - 'G' => ["g any$sign{_}where", 'po argm', "follow branches"], + '?' => ['mv mode?'], #help + '+?'=> ['mv'], + '/' => ['mi arg mode/'], #whatis + '&' => ['mi arg'], + '<' => ['pm'], #up + '>' => ['pm'], #down + '.' => ['pm'], #rest + '_' => ['po argM'], #travel - '?' => ["help menu", 'mv mode?'], #help - '+?'=> ["more help", 'mv'], - '/' => ["explain symbol", 'mi arg mode/'], #whatis - '&' => ["tell com$sign{_}m$sign{_}and", 'mi arg'], - '<' => ["climb up ladder", 'pm'], #up - '>' => ["desc$sign{_}ent ladder", 'pm'], #down - '.' => ["rest (noop)", 'pm'], #rest - '_' => ["travel to", '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'=> ["two$sign{_}weapon toggle", 'co'], #twoweapon - 'a' => ["apply tool", 'co argi'], #apply - 'A' => ["remove all armor", 'co'], #armor - '^a'=> ["redo comm$sign{_}and", 'co', 'Again'], #again - '+a'=> ["adjust inv$sign{_}ent$sign{_}ory", 'mi'], #adjust - 'c' => ["close door", 'co argm'], #close - 'C' => ["call monster", 'co arg'], #call - '+c'=> ["chat", 'co arg'], #chat - 'd' => ["drop item", 'co argi'], #drop - 'D' => ["drop items", 'co arg modeD'], #Drop - '^d'=> ["kick", 'co argm'], #kick - '+d'=> ["dip", 'co argi'], #dip - 'e' => ["eat food", 'co argi'], #eat - 'E' => ["en$sign{_}grave", 'co argi'], #engrave - '+e'=> ["weapon skills", 'co', 'Enhance'], #enhance - 'f' => ["fire quiver", 'co argm'], #fire - 'F' => ["fight monster", 'co argm'], #fight - '+f'=> ["force lock", 'co'], #force - 'i' => ["invent$sign{_}ory", 'mo'], #invent - 'I' => ["invent$sign{_}ory part", 'mo arg modeI'], #Invent - '+i'=> ["invoke object", 'co argi'], #invoke - '+j'=> ["jump", 'co'], #jump - '+l'=> ["loot", 'co'], #loot - '+m'=> ["mons$sign{_}ter abil$sign{_}ity", 'co'], #monster - '+n'=> ["name item$sign{_}(s)", 'mo arg'], #name - 'o' => ["open door", 'co argm'], #open - 'O' => ["options", 'mv modeO'], #options - '+o'=> ["offer sacrifice", 'co argi'], #offer - 'p' => ["pay bill", 'co'], #pay - 'P' => ["put on", 'co argi'], #puton - '^p'=> ["repeat message", 'mi'], #prevmsg - '+p'=> ["pray", 'co arg'], #pray - 'q' => ["drink", 'co argi', 'Quaff'], #quaff - 'Q' => ["quiver ammo", 'co argi'], #quiver - '+q'=> ["exit game", 'mi', 'Quit'], #quit - 'r' => ["read scroll", 'co argi'], #read - 'R' => ["put off", 'co argi', 'Remove accessory'], #remove - '^r'=> ["redraw", 'mi'], #redraw - '+r'=> ["rub object", 'co argi'], #rub - 's' => ["search secrets", 'co'], #search - 'S' => ["save game", 'mi'], #save - '+s'=> ["sit down", 'co'], #sit - 't' => ["throw$sign{_}/shoot", 'co argm'], #throw - 'T' => ["remove armor", 'co argi'], #takeoff - '^t'=> ["teleport", 'co'], #'port - '+t'=> ["turn undead", 'co'], #turn - '+u'=> ["untrap", 'co'], #untrap - 'v' => ["version", 'mi'], - 'V' => ["verbose version", 'mi'], #history - '+v'=> ["compile details", 'mi'], #version - 'w' => ["wield weap$sign{_}on", 'co argi'], #wield - 'W' => ["wear armor", 'co argi'], #wear - '+w'=> ["wipe face", 'co'], #wipe - 'x' => ["swap weapons", 'co', 'Xchange'], #xchange - 'X' => ["explore mode", 'mi'], #explore - '^x'=> ["show stats", 'mi'], #show - 'z' => ["zap wand", 'co argm'], #zap - 'Z' => ["cast spell", 'co argi'], #Zap - '^z'=> ["suspend game", 'mi'], #suspend - - ':' => ["look here", 'mi'], #look - ';' => ["look else$sign{_}where", 'mi argM'], #farlook - ',' => ["pick up", 'co'], #pickup - '@' => ["toggle pick$sign{_}up", 'mi'], - '^' => ["show trap", 'mi argm'], #trap_id - ')' => ["show weapon", 'mo'], - '[' => ["show armor", 'mo'], - '=' => ["show rings", 'mo'], - '"' => ["show amulet", 'mo'], - '(' => ["show tools", 'mo'], - '*' => ["show equip$sign{_}ment", 'mo'], - '$' => ["count gold", 'mi'], #gold - '+' => ["list spells", 'mo'], #spells - '\\'=> ["discover$sign{_}ed obj$sign{_}ects", 'mo'], #known - '!' => ["shell escape", 'mi'], #sh - '#' => ["more comm$sign{_}ands", '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' => ['drop blessed', 'co'], - 'U' => ['drop uncursed', 'co'], - 'C' => ['drop cursed', 'co'], - 'X' => ['drop unknown', 'co'], - 'a' => ['drop all', 'co'], - 'i' => ["invent$sign{_}ory", 'mi'], - 'u' => ['drop unpaid', 'co'], - 'm' => ['drop any', 'co argi'], - '%' => ['drop more', 'co arg'], + 'B' => ['co'], + 'U' => ['co'], + 'C' => ['co'], + 'X' => ['co'], + 'a' => ['co'], + 'i' => ['mi'], + 'u' => ['co'], + 'm' => ['co argi'], + '%' => ['co arg'], }, 'I' => { - '*' => ['list gems', 'mi'], - 'u' => ['list unpaid', 'mi'], - 'x' => ['list billed', 'mi'], - '$' => ['count money', 'mi'], + '*' => ['mi'], + 'u' => ['mi'], + 'x' => ['mi'], + '$' => ['mi'], }, +} diff --git a/nethack.plp b/nethack.plp index eaea76c..3115e28 100644 --- a/nethack.plp +++ b/nethack.plp @@ -2,7 +2,7 @@ Html({ title => 'nethack cheat sheet', - version => 'v1.0', + version => 'v1.1', description => [ "Keyboard overview sheet for the Nethack console RPG game,", "describing the default controls.", @@ -30,8 +30,10 @@ Html({ <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'nethack.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'nethack.eng.inc.pl' or die $@; +$info->{def} = do 'nethack.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows} || '4321-421', [3,2,1,0]); :> diff --git a/readline.eng.inc.pl b/readline.eng.inc.pl new file mode 100644 index 0000000..da03370 --- /dev/null +++ b/readline.eng.inc.pl @@ -0,0 +1,83 @@ +use utf8; +{ + +key => { + '+<' => ["history start"], + '+>' => ["history end"], + '+?' => ["list complet$sign{_}ion$sign{_}s"], + '^@' => ["set mark"], + + '+#' => ["prefix comm$sign{_}en$sign{_}t"], + '+&' => ["tilde expand"], + '+*' => ["complet$sign{_}e all"], + '+.' => ["insert last"], + + '^[' => ["meta"], + '+\\'=> ["delete whitesp$sign{_}ace"], + '^]' => ["find char"], + '^+]'=> ["rev find char"], + '^_' => ["undo"], + + '+~' => ["user$sign{_}name exp$sign{_}and"], + '+!' => ["cmd expand"], + '+@' => ["host$sign{_}name exp$sign{_}and"], + '+$' => ["variable expand"], + '+^' => ["history expand"], + '+/' => ["filename expand"], + + '^a' => ["begin of line"], + '^b' => ["char back$sign{_}w$sign{_}ard$sign{_}s"], + '+b' => ["word back$sign{_}w$sign{_}ard$sign{_}s"], + '^c' => ["cancel comm$sign{_}and"], + '+c' => ["capital$sign{_}ise word"], + '^d' => ["delete char"], + '+d' => ["delete word rem$sign{_}ain$sign{_}der"], +# '^e' => ["emacs mode"], + '^e' => ["end of line"], + '^f' => ["char forward"], + '+f' => ["word forward"], + '^g' => ["abort cmd, bell"], + '^h' => ["back$sign{_}space"], + '^+h'=> ["delete bound word"], + '^i' => ["auto$sign{_}complet$sign{_}e", '(tab)'], + '^+j'=> ["vim mode"], + '^k' => ["delete till eol"], + '^l' => ["clear screen"], + '+l' => ["lowcase word"], + '^m' => ["enter line", '(enter)'], + '^n' => ["history next"], + '+n' => ["match history"], + '^o' => ["enter and next"], + '^p' => ["history back"], + '+p' => ["rev match history"], + '^q' => [undef, 'Quote'], + '^r' => ["reverse history"], + '+r' => ["full undo", 'Revert'], + '^s' => ["search history"], + '^t' => ["move char forw$sign{_}ard", 'Transpose char'], + '+t' => ["move word forw$sign{_}ard", 'Transpose word'], + '^u' => ["delete till bol"], # unix + '+u' => ["upcase word"], + '^v' => ["verbatim char"], + '^w' => ["delete word"], # unix + '^x' => ["extend$sign{_}ed"], + '^y' => ["yank top"], + '+y' => ["rotate yank"], + '^+y'=> ["yank arg"], + '^z' => ["back$sign{_}ground"], + + '^x(' => ["start macro"], + '^x)' => ["end macro"], + '^xe' => ["run macro", 'Execute'], + '^x^e' => ["editor"], + '^x^r' => ["reload inputrc"], + '^x^x' => ["swap cursor", 'eXchange'], + '^x^v' => ["shell version"], +}, + +mode => { + '' => "emacs mode", + '^x' => 'emacs ctrl-x bindings', +}, + +} diff --git a/readline.inc.pl b/readline.inc.pl index 70f6227..ea94799 100644 --- a/readline.inc.pl +++ b/readline.inc.pl @@ -1,97 +1,96 @@ use utf8; +{ '' => { - desc => "emacs mode", - - '+<' => ["history start", 'co'], + '+<' => ['co'], '+=' => '+?', #TODO: new # emacs, not in v2.0 - '+>' => ["history end", 'co'], + '+>' => ['co'], '^?' => '^h', - '+?' => ["list complet$sign{_}ion$sign{_}s", 'ci'], - '^@' => ["set mark", 'mv new'], # not in v2.0 + '+?' => ['ci'], + '^@' => ['mv new'], # not in v2.0 - '+#' => ["prefix comm$sign{_}en$sign{_}t", 'mi new'], # not in v2.0 - '+&' => ["tilde expand", 'mi'], - '+*' => ["complet$sign{_}e all", 'mi new'], # not in v2.0 - '+.' => ["insert last", 'co'], + '+#' => ['mi new'], # not in v2.0 + '+&' => ['mi'], + '+*' => ['mi new'], # not in v2.0 + '+.' => ['co'], '+~' => '+&', # emacs - '^[' => ["meta", 'mv'], + '^[' => ['mv'], '^+['=> '^i', - '+\\'=> ["delete whitesp$sign{_}ace", 'mo'], - '^]' => ["find char", 'pm arg new'], # not in v2.0 - '^+]'=> ["rev find char", 'pm arg new'], # not in v2.0 - '^_' => ["undo", 'co'], + '+\\'=> ['mo'], + '^]' => ['pm arg new'], # not in v2.0 + '^+]'=> ['pm arg new'], # not in v2.0 + '^_' => ['co'], '+_' => '+.', - '+~' => ["user$sign{_}name exp$sign{_}and", 'mi ext'], # common emacs => '+&' - '+!' => ["cmd expand", 'mi ext'], - '+@' => ["host$sign{_}name exp$sign{_}and", 'mi ext'], - '+$' => ["variable expand", 'mi ext'], - '+^' => ["history expand", 'co ext'], - '+/' => ["filename expand", 'ci ext'], + '+~' => ['mi ext'], # common emacs => '+&' + '+!' => ['mi ext'], + '+@' => ['mi ext'], + '+$' => ['mi ext'], + '+^' => ['co ext'], + '+/' => ['ci ext'], - '^a' => ["begin of line", 'pm'], - '^b' => ["char back$sign{_}w$sign{_}ard$sign{_}s", 'pm'], - '+b' => ["word back$sign{_}w$sign{_}ard$sign{_}s", 'pm'], - '^c' => ["cancel comm$sign{_}and", 'mv ext'], - '+c' => ["capital$sign{_}ise word", 'mi'], - '^d' => ["delete char", 'mo'], - '+d' => ["delete word rem$sign{_}ain$sign{_}der", 'mo ring'], -# '^e' => ["emacs mode", 'me'], - '^e' => ["end of line", 'pm'], - '^f' => ["char forward", 'pm'], - '+f' => ["word forward", 'pm'], - '^g' => ["abort cmd, bell", 'mv'], + '^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' => ["back$sign{_}space", 'mo'], - '^+h'=> ["delete bound word", 'mo ring'], #TODO - '^i' => ["auto$sign{_}complet$sign{_}e", 'mi', '(tab)'], + '^h' => ['mo'], + '^+h'=> ['mo ring'], #TODO + '^i' => ['mi'], '^+i'=> '^v^i', '^j' => '^m', - '^+j'=> ["vim mode", 'me'], #TODO: mode^+j - '^k' => ["delete till eol", 'mo ring'], - '^l' => ["clear screen", 'ci'], - '+l' => ["lowcase word", 'mi'], - '^m' => ["enter line", 'co', '(enter)'], + '^+j'=> ['me'], #TODO: mode^+j + '^k' => ['mo ring'], + '^l' => ['ci'], + '+l' => ['mi'], + '^m' => ['co'], '^+m'=> '^+j', - '^n' => ["history next", 'co'], - '+n' => ["match history", 'co'], - '^o' => ["enter and next", 'co ext'], - '^p' => ["history back", 'co'], - '+p' => ["rev match history", 'co'], - '^q' => '^v', # Quote - '^r' => ["reverse history", 'co'], - '+r' => ["full undo", 'co', 'Revert'], + '^n' => ['co'], + '+n' => ['co'], + '^o' => ['co ext'], + '^p' => ['co'], + '+p' => ['co'], + '^q' => '^v', + '^r' => ['co'], + '+r' => ['co'], '^+r'=> '+r', - '^s' => ["search history", 'co'], - '^t' => ["move char forw$sign{_}ard", 'mi', 'Transpose char'], - '+t' => ["move word forw$sign{_}ard", 'mi', 'Transpose word'], - '^u' => ["delete till bol", 'mo ring'], # unix - '+u' => ["upcase word", 'mi'], - '^v' => ["verbatim char", 'mv'], - '^w' => ["delete word", 'mo ring'], # unix - '^x' => ["extend$sign{_}ed", 'me arg mode^x'], - '^y' => ["yank top", 'co'], - '+y' => ["rotate yank", 'co ring'], + '^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' => ["back$sign{_}ground", 'mv ext'], + '^z' => ['mv ext'], }, '^x' => { lead => $ascii ? "'x" : "x̂", - desc => 'emacs ctrl-x bindings', - '(' => ["start macro", 'mv'], - ')' => ["end macro", 'mv'], - 'e' => ["run macro", 'mv', 'Execute'], - '^e' => ["editor", 'mi ext linkvi'], + '(' => ['mv'], + ')' => ['mv'], + 'e' => ['mv'], + '^e' => ['mi ext linkvi'], '^g' => '^g', '^h' => '^u', - '^r' => ["reload inputrc", 'mv'], + '^r' => ['mv'], '^u' => '^_', - '^x' => ["swap cursor", 'pm new', 'eXchange'], # not in v2.0 - '^v' => ["shell version", 'ci ext'], + '^x' => ['pm new'], # not in v2.0 + '^v' => ['ci ext'], '^?' => '^x^h', }, +} diff --git a/readline.plp b/readline.plp index 0488d87..a7be846 100644 --- a/readline.plp +++ b/readline.plp @@ -2,7 +2,7 @@ Html({ title => 'readline cheat sheet', - version => 'v1.0', + version => 'v1.1', description => [ "Reference sheet of default key bindings for GNU readline,", "used for line-editing in most Unix software, notably Emacs and Bash.", @@ -29,8 +29,10 @@ Html({ <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'readline.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'readline.eng.inc.pl' or die $@; +$info->{def} = do 'readline.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows} || '^x=213', [4,3,2]); :> diff --git a/starcraft.eng.inc.pl b/starcraft.eng.inc.pl new file mode 100644 index 0000000..ae231ea --- /dev/null +++ b/starcraft.eng.inc.pl @@ -0,0 +1,203 @@ +use utf8; + +my %CONS = ( + r => ["rally point"], +); +my %UNIT = ( + m => ["move"], + s => ["stop"], + p => ["patrol"], + h => ["hold"], + a => ["attack"], + b => ["burrow"], + g => ["gather"], + c => ["return cargo"], +); + +{ + +key => { + (map { 'P'.$_ => $UNIT{$_} } qw'm s a g c'), + Pb => ["build structure"], + Pv => ["build adv$sign{_}anced structure"], + + Pbn => ["nexus"], + Pbp => ["pylon"], + Pba => ["assimi$sign{_}lator"], + Pbg => ["gate$sign{_}way"], + Pbf => ["forge"], + Pbc => ["photon cannon"], + Pby => ["cyber$sign{_}netics core"], + Pbb => ["shield batt$sign{_}ery"], + + (map { 'Pbn'.$_ => $CONS{$_} } 'r'), + Pbnp => ["probe"], + + (map { 'Pbg'.$_ => $CONS{$_} } 'r'), + Pbgz => ["zealot"], + Pbgd => ["dragoon"], + Pbgt => ["high templar"], + Pbgk => ["dark templar"], + + (map { 'Pbgt'.$_ => $UNIT{$_} } qw'm s p h'), + t => ["psionic storm"], + l => ["halluci$sign{_}nation"], + r => ["archon warp"], + + (map { 'Pbgk'.$_ => $UNIT{$_} } qw'm s p h a'), + Pbgkr => ["dark archon meld"], + + (map { 'Pbgkr'.$_ => $UNIT{$_} } qw'm s p h'), + Pbgkrf => ["feed$sign{_}back"], + Pbgkrc => ["mind control"], + Pbgkre => ["mael$sign{_}strom"], + + Pbfw => ["ground weap$sign{_}on$sign{_}s"], + Pbfa => ["ground armor"], + Pbfs => ["plasma shields"], + + Pbyw => ["air weap$sign{_}on$sign{_}s"], + Pbya => ["air armor"], + Pbys => ["dragoon range"], + + Pbbr => ["recharge shields"], + + Pvr => ["robotics facility"], + Pvs => ["stargate"], + Pvc => ["citadel of adun"], + Pvb => ["support bay"], + Pvf => ["fleet beacon"], + Pvt => ["templar archives"], + Pvo => ["observa$sign{_}tory"], + Pva => ["arbiter tribunal"], + + (map { 'Pvr'.$_ => $CONS{$_} } 'r'), + Pvrs => ["shuttle"], + Pvro => ["observer"], + Pvrv => ["reaver"], + + (map { 'Pvrv'.$_ => $UNIT{$_} } qw'm s p h a'), + Pvrvr => ["scarab"], + + (map { 'Pvs'.$_ => $CONS{$_} } 'r'), + Pvss => ["scout"], + Pvsc => ["carrier"], + Pvsa => ["arbiter"], + Pvso => ["corsair"], + + (map { 'Pvsc'.$_ => $UNIT{$_} } qw'm s p h a'), + Pvsci => ["inter$sign{_}ceptor"], + + (map { 'Pvsa'.$_ => $UNIT{$_} } qw'm s p h a'), + Pvsar => ["recall"], + Pvsat => ["statis field"], + + (map { 'Pvso'.$_ => $UNIT{$_} } qw'm s p h a'), + Pvsod => ["disrup$sign{_}tion web"], + + Pvcl => ["leg en$sign{_}hancem$sign{_}ent$sign{_}s"], + + Pvbs => ["scarab damage"], + Pvbc => ["reaver capacity"], + Pvbg => ["gravitic drive"], + + Pvfa => ["apial sensors"], + Pvfg => ["gravitic thrust$sign{_}ers"], + Pvfc => ["carrier capacity"], + Pvfd => ["disrup$sign{_}tion web"], + Pvfj => ["argus jewel"], + + Pvtt => ["psionic storm"], + Pvth => ["halluci$sign{_}nation"], + Pvtk => ["khayda$sign{_}rin amul$sign{_}et"], +# Pvtc => ["mind control?"], #TODO + Pvte => ["mael$sign{_}strom"], + Pvtt => ["argus talisman"], + + Pvog => ["gravitic booster"], + Pvos => ["sensor array"], + + Pvar => ["recall"], + Pvas => ["stasis field"], + Pvak => ["khayda$sign{_}rin core"], + + Zd => ["drone"], + Zz => ["zergling"], + Zo => ["overlord"], + Zh => ["hydra$sign{_}lisk"], + Zq => ["queen"], + + (map { 'Zd'.$_ => $UNIT{$_} } qw'm s a g c b'), + Zdb => ["basic mutat$sign{_}ion"], + Zdv => ["advance$sign{_}d mutat$sign{_}ion"], + + Zdbh => ["hatche$sign{_}ry"], + Zdbc => ["creep colony"], + Zdbe => ["extrac$sign{_}tor"], + Zdbs => ["spawning pool"], + Zdbv => ["evolution chamber"], + Zdbd => ["hydra$sign{_}lisk den"], + + (map { 'Zdbh'.$_ => $CONS{$_} } 'r'), + Zdbhb => ["burrow"], + Zdbhs => ["select larvae"], + Zdbhl => ["lair"], + + (map { 'Zdbhl'.$_ => $CONS{$_} } 'r'), + Zdbhlb => ["burrow"], + Zdbhlv => ["ventral sacs"], + Zdbhla => ["antennae"], + Zdbhlp => ["pneumatized carapace"], + Zdbhlh => ["hive"], + + (map { 'Zdbhlh'.$_ => $CONS{$_} } 'r'), + Zdbhlhb => ["burrow"], + Zdbhlhv => ["ventral sacs"], + Zdbhlha => ["antennae"], + Zdbhlhp => ["pneumatized carapace"], + + Zdbsm => ["metabol boost"], + Zdbsa => ["adrenal glands"], + + Zdbvm => ["melee attack$sign{_}s"], + Zdbva => ["missile attack$sign{_}s"], + Zdbvc => ["carapace"], + Zdbdm => ["muscular augments"], + Zdbdg => ["grooved spines"], + Zdbdl => ["lurker aspect"], +}, + +mode => { + P => 'Protoss Probe', + Pb => 'Protoss Probe build', + Pbn => 'Protoss Nexus', + Pbg => 'Protoss Gateway', + Pbgt => 'Protoss High Templar', + Pbgk => 'Protoss Dark Templar', + Pbgkr => 'Protoss Dark Archon', + Pbf => 'Protoss Forge', + Pby => 'Protoss Cybernetics Core', + Pbb => 'Protoss Shield Battery', + Pv => 'Protoss Probe advanced build', + Pvr => 'Protoss Robotics facility', + Pvrv => 'Protoss Reaver', + Pvs => 'Protoss Stargate', + Pvsc => 'Protoss Carrier', + Pvsa => 'Protoss Arbiter', + Pvso => 'Protoss Corsair', + Pvt => 'Protoss Templar Archives', + Pvo => 'Protoss Observatory', + Pva => 'Protoss Arbiter Tribunal', + + Z => 'Zerg Larva', + Zd => 'Zerg Drone', + Zdb => 'Zerg basic Drone mutation', + Zdbh => 'Zerg Hatchery', + Zdbhl => 'Zerg Lair', + Zdbhlh => 'Zerg Hive', + Zdbs => 'Zerg Spawning Pool', + Zdbd => 'Zerg Hydralisk Den', + Zdv => 'Zerg advanced Drone mutation', +}, + +} diff --git a/starcraft.inc.pl b/starcraft.inc.pl index 8c4af9c..b18542b 100644 --- a/starcraft.inc.pl +++ b/starcraft.inc.pl @@ -1,243 +1,217 @@ use utf8; my %CONS = ( # producing building - r => ["rally point", 'pm'], + r => ['pm'], ); my %UNIT = ( # any unit - m => ["move", 'pm'], - s => ["stop", 'pm'], + m => ['pm'], + s => ['pm'], ); my %UNITF = ( # fighter - p => ["patrol", 'pm'], - h => ["hold", 'pm'], + p => ['pm'], + h => ['pm'], ); my %UNITA = ( - a => ["attack", 'pm'], + a => ['pm'], ); my %UNITB = ( - b => ["burrow", 'ci'], + b => ['ci'], ); my %UNITH = ( %UNITA, - g => ["gather", 'pm'], - c => ["return cargo", 'pm'], + g => ['pm'], + c => ['pm'], ); +{ + '' => { }, P => { - desc => 'Protoss Probe', %UNIT, %UNITH, - b => ["build structure", 'me modePb'], - v => ["build adv$sign{_}anced structure", 'me modePv'], + b => ['me modePb'], + v => ['me modePv'], }, Pb => { - desc => 'Protoss Probe build', - n => ["nexus", 'mo modePbn'], - p => ["pylon", 'me'], - a => ["assimi$sign{_}lator", 'me'], - g => ["gate$sign{_}way", 'mo modePbg'], - f => ["forge", 'mv modePbf'], - c => ["photon cannon", 'me'], - y => ["cyber$sign{_}netics core", 'mv modePby'], - b => ["shield batt$sign{_}ery", 'me modePbb'], + n => ['mo modePbn'], + p => ['me'], + a => ['me'], + g => ['mo modePbg'], + f => ['mv modePbf'], + c => ['me'], + y => ['mv modePby'], + b => ['me modePbb'], }, Pbn => { - desc => 'Protoss Nexus', %CONS, - p => ["probe", 'co modeP'], + p => ['co modeP'], }, Pbg => { - desc => 'Protoss Gateway', %CONS, - z => ["zealot", 'co'], - d => ["dragoon", 'cp'], - t => ["high templar", 'cp modePbgt'], - k => ["dark templar", 'cp modePbgk'], + z => ['co'], + d => ['cp'], + t => ['cp modePbgt'], + k => ['cp modePbgk'], }, Pbgt => { - desc => 'Protoss High Templar', %UNIT, %UNITF, - t => ["psionic storm", 'ci'], - l => ["halluci$sign{_}nation", 'ci'], - r => ["archon warp", 'cp'], + t => ['ci'], + l => ['ci'], + r => ['cp'], }, Pbgk => { - desc => 'Protoss Dark Templar', %UNIT, %UNITF, %UNITA, - r => ["dark archon meld", 'cp modePbgkr'], + r => ['cp modePbgkr'], }, Pbgkr => { - desc => 'Protoss Dark Archon', %UNIT, %UNITF, - f => ["feed$sign{_}back", 'pm'], - c => ["mind control", 'ci'], - e => ["mael$sign{_}strom", 'ci'], + f => ['pm'], + c => ['ci'], + e => ['ci'], }, Pbf => { - desc => 'Protoss Forge', - w => ["ground weap$sign{_}on$sign{_}s", 'mv'], - a => ["ground armor", 'mv'], - s => ["plasma shields", 'mv'], + w => ['mv'], + a => ['mv'], + s => ['mv'], }, Pby => { - desc => 'Protoss Cybernetics Core', - w => ["air weap$sign{_}on$sign{_}s", 'mv'], - a => ["air armor", 'mv'], - s => ["dragoon range", 'mv'], + w => ['mv'], + a => ['mv'], + s => ['mv'], }, Pbb => { - desc => 'Protoss Shield Battery', - r => ["recharge shields", 'pm'], + r => ['pm'], }, Pv => { - desc => 'Protoss Probe advanced build', - r => ["robotics facility", 'mo modePvr'], - s => ["stargate", 'mo modePvs'], - c => ["citadel of adun", 'mv modePvc'], - b => ["support bay", 'mv modePvb'], - f => ["fleet beacon", 'mv modePvf'], - t => ["templar archives", 'mv modePvt'], - o => ["observa$sign{_}tory", 'mv modePvo'], - a => ["arbiter tribunal", 'mv modePva'], + r => ['mo modePvr'], + s => ['mo modePvs'], + c => ['mv modePvc'], + b => ['mv modePvb'], + f => ['mv modePvf'], + t => ['mv modePvt'], + o => ['mv modePvo'], + a => ['mv modePva'], }, Pvr => { - desc => 'Protoss Robotics facility', %CONS, - s => ["shuttle", 'co'], - o => ["observer", 'cp'], - v => ["reaver", 'cp modePvrv'], + s => ['co'], + o => ['cp'], + v => ['cp modePvrv'], }, Pvrv => { - desc => 'Protoss Reaver', %UNIT, %UNITF, %UNITA, - r => ["scarab", 'co'], + r => ['co'], }, Pvs => { - desc => 'Protoss Stargate', %CONS, - s => ["scout", 'co'], - c => ["carrier", 'cp modePvsc'], - a => ["arbiter", 'cp modePvsa'], - o => ["corsair", 'co modePvso ext'], + s => ['co'], + c => ['cp modePvsc'], + a => ['cp modePvsa'], + o => ['co modePvso ext'], }, Pvsc => { - desc => 'Protoss Carrier', %UNIT, %UNITF, %UNITA, - i => ["inter$sign{_}ceptor", 'co'], + i => ['co'], }, Pvsa => { - desc => 'Protoss Arbiter', %UNIT, %UNITF, %UNITA, - r => ["recall"], - t => ["statis field"], + r => [undef], + t => [undef], }, Pvso => { - desc => 'Protoss Corsair', %UNIT, %UNITF, %UNITA, - d => ["disrup$sign{_}tion web", 'ci'], + d => ['ci'], }, Pvc => { - l => ["leg en$sign{_}hancem$sign{_}ent$sign{_}s", 'mv'], + l => ['mv'], }, Pvb => { - s => ["scarab damage", 'mv'], - c => ["reaver capacity", 'mv'], - g => ["gravitic drive", 'mv'], + s => ['mv'], + c => ['mv'], + g => ['mv'], }, Pvf => { - a => ["apial sensors", 'mv'], - g => ["gravitic thrust$sign{_}ers", 'mv'], - c => ["carrier capacity", 'mv'], - d => ["disrup$sign{_}tion web", 'mv ext'], - j => ["argus jewel", 'mv'], + a => ['mv'], + g => ['mv'], + c => ['mv'], + d => ['mv ext'], + j => ['mv'], }, Pvt => { - desc => 'Protoss Templar Archives', - t => ["psionic storm", 'mv'], - h => ["halluci$sign{_}nation", 'mv'], - k => ["khayda$sign{_}rin amul$sign{_}et", 'mv'], -# c => ["mind control?", 'mv'], #TODO - e => ["mael$sign{_}strom", 'mv'], - t => ["argus talisman", 'mv'], + t => ['mv'], + h => ['mv'], + k => ['mv'], +# c => ['mv'], #TODO + e => ['mv'], + t => ['mv'], }, Pvo => { - desc => 'Protoss Observatory', - g => ["gravitic booster", 'mv'], - s => ["sensor array", 'mv'], + g => ['mv'], + s => ['mv'], }, Pva => { - desc => 'Protoss Arbiter Tribunal', - r => ["recall", 'mv'], - s => ["stasis field", 'mv'], - k => ["khayda$sign{_}rin core", 'mv'], + r => ['mv'], + s => ['mv'], + k => ['mv'], }, Z => { - desc => 'Zerg Larva', - d => ["drone", 'co modeZd'], - z => ["zergling", 'cp'], - o => ["overlord", 'co modeZo'], - h => ["hydra$sign{_}lisk", 'cp modeZh'], - q => ["queen", 'mv modeZq'], + d => ['co modeZd'], + z => ['cp'], + o => ['co modeZo'], + h => ['cp modeZh'], + q => ['mv modeZq'], }, Zd => { - desc => 'Zerg Drone', %UNIT, %UNITH, %UNITB, - b => ["basic mutat$sign{_}ion", 'me modeZdb'], - v => ["advance$sign{_}d mutat$sign{_}ion", 'me modeZdv'], + b => ['me modeZdb'], + v => ['me modeZdv'], }, Zdb => { - desc => 'Zerg basic Drone mutation', - h => ["hatche$sign{_}ry", 'mo modeZdbh'], - c => ["creep colony", 'mo modeZdbc'], - e => ["extrac$sign{_}tor", 'me'], - s => ["spawning pool", 'mv modeZdbs'], - v => ["evolution chamber", 'mv modeZdbv'], - d => ["hydra$sign{_}lisk den", 'mv modeZdbd'], + h => ['mo modeZdbh'], + c => ['mo modeZdbc'], + e => ['me'], + s => ['mv modeZdbs'], + v => ['mv modeZdbv'], + d => ['mv modeZdbd'], }, Zdbh => { - desc => 'Zerg Hatchery', %CONS, - b => ["burrow", 'me'], - s => ["select larvae", 'pm modeZ'], - l => ["lair", 'mo modeZdbhl'], + b => ['me'], + s => ['pm modeZ'], + l => ['mo modeZdbhl'], }, Zdbhl => { - desc => 'Zerg Lair', %CONS, - b => ["burrow", 'me'], - v => ["ventral sacs", 'mv'], - a => ["antennae", 'mv'], - p => ["pneumatized carapace", 'mv'], - h => ["hive", 'mo modeZdbhlh'], + b => ['me'], + v => ['mv'], + a => ['mv'], + p => ['mv'], + h => ['mo modeZdbhlh'], }, modeZdbhlh => { - desc => 'Zerg Hive', %CONS, - b => ["burrow", 'me'], - v => ["ventral sacs", 'mv'], - a => ["antennae", 'mv'], - p => ["pneumatized carapace", 'mv'], + b => ['me'], + v => ['mv'], + a => ['mv'], + p => ['mv'], }, Zdbs => { - desc => 'Zerg Spawning Pool', - m => ["metabol boost", 'mv'], - a => ["adrenal glands", 'mv'], + m => ['mv'], + a => ['mv'], }, Zdbv => { - m => ["melee attack$sign{_}s", 'mv'], - a => ["missile attack$sign{_}s", 'mv'], - c => ["carapace", 'mv'], + m => ['mv'], + a => ['mv'], + c => ['mv'], }, Zdbd => { - desc => 'Zerg Hydralisk Den', - m => ["muscular augments", 'mv'], - g => ["grooved spines", 'mv'], - l => ["lurker aspect", 'mv'], + m => ['mv'], + g => ['mv'], + l => ['mv'], }, Zdv => { - desc => 'Zerg advanced Drone mutation', }, +} diff --git a/starcraft.plp b/starcraft.plp index 8279df3..386bf40 100644 --- a/starcraft.plp +++ b/starcraft.plp @@ -50,8 +50,10 @@ $header{content_type} = "text/html; charset=$sign{charset}"; <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'starcraft.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'starcraft.eng.inc.pl' or die $@; +$info->{def} = do 'starcraft.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows} || '1 =P1 Z1', [0]); :> diff --git a/vi.eng.inc.pl b/vi.eng.inc.pl new file mode 100644 index 0000000..9a4f6f1 --- /dev/null +++ b/vi.eng.inc.pl @@ -0,0 +1,462 @@ +use utf8; + +{ +key => { + +'~' => ["case toggle"], +'!' => ["filt$sign{_}er lines"], +'@' => ["play macro"], +'#' => ["rev. find word"], +'$' => ["eol"], +'%' => ["goto match"], +'^' => ['"soft" bol'], +'&' => [":s rep$sign{_}eat"], +'*' => ["find word"], +'(' => ["begin senten$sign{_}ce"], +')' => ["end senten$sign{_}ce"], +'_' => ['"soft" bol down'], +'+' => ["next line"], +'`' => ["goto mark"], +'0' => ['"hard" bol'], +'^^'=> ["edit alt. file"], +'-' => ["prev line"], +'=' => ["re$sign{_}ind$sign{_}ent"], +'?' => ["find rev."], +';' => ["repeat t/f/T/F"], +':' => ["ex cmd line"], +"'" => ["goto mark bol"], +'"' => ["use reg$sign{_}ister"], +'\\' => ["reser$sign{_}ved"], +'^\\' => ["to mode/$sign{_}ext$sign{_}ens$sign{_}ion$sign{_}s"], +',' => ["reverse t/T/f/F"], +'<' => ["un$sign{_}ind$sign{_}ent"], +'.' => ["repeat last cmd"], +'>' => ["ind$sign{_}ent"], +'/' => ["find"], +'[' => ["move back$sign{_}ward$sign{_}s"], +'{' => ["begin parag."], +']' => ["move forw$sign{_}ard"], +'}' => ["end parag."], +'^]'=> ["go to tag"], +'|' => ["goto (1st) col"], + +'a' => ["app$sign{_}end"], +'A' => ["app$sign{_}end to eol"], +'^a'=> ["incr$sign{_}ement", "Add one"], +'b' => ["prev word", "Back"], +'B' => ['prev word'], +'^b'=> ["page up"], +'c' => ["chan$sign{_}ge"], +'C' => ["chan$sign{_}ge to eol"], +'^c'=> ["abort"], +'d' => ["del$sign{_}ete"], +'D' => ["delete to eol"], +'^d'=> ["scroll down"], +'e' => ["end word"], +'E' => ['end word'], +'^e'=> ["window down", "Extra line"], +'f' => ["fwd to char"], +'F' => ["back$sign{_}wd to char"], +'^f'=> ["page down", "page Forward"], +'g' => ["extra cmds"], +'G' => ["eof/$sign{_}goto ln"], +'^g'=> [":file (info)"], +'h' => [$sign{left}], +'H' => ["screen top", 'Home row'], +'i' => ["insert mode"], +'I' => ["insert at bol"], +'^i'=> ["jump to newer", 'Increase position'], +'j' => [$sign{down}], +'J' => ["join lines"], +'k' => [$sign{up}], +'K' => ["help", "looKup Keyword"], +'l' => [$sign{right}], +'L' => ["screen bottom", "Lowermost Line"], +'^l'=> ["redraw"], +'m' => ["set mark"], +'M' => ["screen mid$sign{_}dle"], +'n' => ["next find"], +'N' => ["prev find"], +'o' => ["line below", 'Open'], +'O' => ["line above"], +'^o'=> ["jump to older"], +'p' => ["paste after"], +'P' => ["paste before"], +'q' => ["rec$sign{_}ord macro", "Queue seQuence"], +'Q' => ["ex mode"], +'^q'=> ["(xon)", 'Qome back'], +'r' => ["repl$sign{_}ace char"], +'R' => ["repl$sign{_}ace mode"], +'^r'=> ["redo"], +'s' => ["subst char"], +'S' => ["subst line"], +'^s'=> ["(xoff)", 'Stop'], +'t' => ["till char"], +'T' => ["back till char"], +'^t'=> ["back tag"], # backtrag :P +'u' => ["undo"], +'U' => ["undo line"], +'^u'=> ["scroll up"], +'v' => ["visual mode"], +'V' => ["visual lines"], +'^v'=> ["visual block"], +'w' => ["next word"], +'W' => ['next word'], +'^w'=> ["win$sign{_}dow cmds"], +'x' => ["delete char"], +'X' => ["back$sign{_}space"], +'^x'=> ["subs$sign{_}tract"], +'y' => ["yank", '(copy)'], +'Y' => ["yank line"], +'^y'=> ["window up", 'Yield'], +'z' => ["extra cmds"], +'Z' => ["quit"], +'^z'=> [":sus$sign{_}pend", 'zzz (as in sleep)'], + +'g~' => ["case toggl$sign{_}e"], +'g@' => ["oper$sign{_}at$sign{_}or$sign{_}func"], +'g#' => ["rev. find string"], +'g$' => ["virt$sign{_}ual eol"], +'g^' => [qq'"soft" bol v$sign{_}irt$sign{_}ual'], +'g&' => [":s rep$sign{_}eat glob$sign{_}al$sign{_}ly", "Global substitute"], +'g*' => ["find string"], +'g_' => [qq'"soft" eol'], +'g+' => ["later undo"], +'g`' => ["to mark keepj$sign{_}umps"], +'g8' => ["char hex val$sign{_}ue$sign{_}s"], +'g0' => ["virtual bol"], +'g-' => ["earlier undo"], +'g^['=> ["esc"], +'g]' => ["go to tselect"], +'g^]'=> ["go to tjump"], +'g;' => ["to prev change pos"], +"g'" => ["to mark keepj$sign{_}umps"], +'g<' => ["see prev cmd output"], +'g?' => ["rot13 encode"], +'g,' => ["to next change pos"], + +'ga' => ["char value", "Get Ascii value"], +'g^a'=> ["mem usage stats"], +'gd' => ["local declar$sign{_}ation"], +'gD' => ["global declar$sign{_}ation"], +'ge' => ["back to word end"], +'gE' => [qq'back to word end'], +'gf' => ["edit file at cur$sign{_}sor", "Goto File"], +'gF' => ["edit file + jump"], +'gg' => ["first line"], +'g^g'=> ["cur$sign{_}sor pos info"], +'gh' => ["select mode", "Get Highlighted"], +'gH' => ["select lines", "Get Highlighted"], +'g^h'=> ["select block", "Get Highlighted"], +'gi' => ["insert at last pos"], +'gI' => ["insert at soft bol"], +'gj' => ["$sign{down} screen"], +'gJ' => ["join leave spac$sign{_}ing"], +'gk' => ["$sign{up} screen"], +'gm' => ["cen$sign{_}ter screen"], +'go' => [":goto (byte)"], +'gp' => ["paste still"], +'gP' => ["paste before still"], +'gq' => ["for$sign{_}mat"], +'gQ' => ["ex mode manual :"], +'gr' => ["virt. repl$sign{_}ace char"], +'gR' => ["virt. repl$sign{_}ace mode"], +'gs' => ["sleep", "Go to Sleep"], +'gt' => ["next tab", "Goto Tab"], +'gT' => ["tab back"], +'gu' => ["lower$sign{_}case"], +'gU' => ["up$sign{_}per$sign{_}case"], +'gv' => ["prev$sign{_}ious highl$sign{_}ight", 'precedinG Visual'], +'gV' => ["avoid resel$sign{_}ect$sign{_}ion"], +'gw' => ["for$sign{_}mat still"], +'gx' => ["Netrw$sign{_}BrowseX"], + +'Z^['=> ["esc"], +'ZQ' => [" :q! (force)"], +'ZZ' => [" :wq (write)"], + +'z^' => ["page above"], +'z+' => ["page below"], +'z-' => ["line at bottom bol", "don't (-) see any further"], +'z=' => ["sug$sign{_}gest spell$sign{_}ing"], +'z.' => ["line at center bol"], +'z^['=> ["esc"], + +'za' => ["toggle fold"], +'zA' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly"], +'zb' => ["line at bot. bol"], +'zc' => ["close fold"], +'zC' => ["close folds rec$sign{_}curs$sign{_}ive$sign{_}ly"], +'zd' => ["delete fold"], +'zD' => ["delete folds rec$sign{_}urs$sign{_}ive"], +'ze' => ["cursor at right side"], +'zE' => ["elimi$sign{_}nate f$sign{_}olds"], +'zf' => ["create fold"], +'zF' => ["fold lines"], +'zg' => ["add spell$sign{_}ing", 'Good word'], +'zG' => ["temp spell$sign{_}ing"], +'zh' => ["scroll $sign{right}"], +'zH' => ["scroll $sign{right} half scr$sign{_}een"], +'zi' => ["toggle all folds"], +'zj' => ["next fold start"], +'zk' => ["prev fold end"], +'zl' => ["scroll $sign{left}"], +'zL' => ["scroll $sign{left} half scr$sign{_}een"], +'z^m'=> ["line at top bol"], +'zm' => ["fold more"], +'zM' => ["close all folds"], +'zn' => ["fold none"], +'zN' => ["fold norm$sign{_}al"], +'zo' => ["open fold"], +'zO' => ["open folds rec$sign{_}urs$sign{_}ive$sign{_}ly"], +'zr' => ["reduce folding"], +'zR' => ["open all folds"], +'zs' => ["cursor at left side"], +'zt' => ["line at top"], +'zu' => ["undo spell$sign{_}ing"], +'zv' => ["unfold cursor line"], +'zw' => ["add missp$sign{_}ell$sign{_}ing", "Wrong word"], +'zW' => ["temp missp$sign{_}ell$sign{_}ing"], +'zx' => ["update folds"], +'zX' => ["re$sign{_}apply f$sign{_}olds"], +'zz' => ["line at center", "Zee Zenter (with a funny accent)"], + +"[`" => ["previous lc mark"], +'[#' => ["previous open #if$sign{_}/#else"], +'[(' => ["previous open ("], +'[/' => ["start of C com$sign{_}m$sign{_}ent"], +'[{' => ["previous open {"], +'[[' => ["section back$sign{_}ward$sign{_}s"], +'[^['=> ["esc"], +'[]' => [qq'section back$sign{_}ward$sign{_}s'], + +'[c' => ["start of change backw$sign{_}ards"], +'[d' => ["define line"], +'[D' => ["defin$sign{_}ition"], +'[^d'=> ["to defin$sign{_}it$sign{_}ion"], +'[i' => ["first occur$sign{_}renc$sign{_}e line"], +'[I' => ["first occur$sign{_}renc$sign{_}e"], +'[^i'=> ["to first occur$sign{_}renc$sign{_}e"], +'[m' => ["start of funct$sign{_}ion"], +'[p' => ["P reind$sign{_}ent$sign{_}ed"], +'[P' => ["[p"], +'[s' => ["last missp$sign{_}ell$sign{_}ing"], +'[S' => ["last bad word"], +'[z' => ["start of open fold"], + +"]`" => ["next lc mark"], +']#' => ["next open #endif$sign{_}/#else"], +'])' => ["next open )"], +']/' => ["end of C com$sign{_}m$sign{_}ent"], +'][' => [qq'section forw$sign{_}ard'], +']^['=> ["esc"], +']]' => ["section forw$sign{_}ard"], +']}' => ["next open }"], + +']c' => ["start of change forw$sign{_}ards"], +']d' => ["next define line"], +']D' => ["next define"], +']^d'=> ["to next define"], +']i' => ["next occur$sign{_}renc$sign{_}e line"], +']I' => ["next occur$sign{_}renc$sign{_}e"], +']^i'=> ["to occur$sign{_}renc$sign{_}e"], +']m' => ["end of funct$sign{_}ion"], +']p' => ["p reind$sign{_}ent$sign{_}ed"], +']s' => ["next missp$sign{_}ell$sign{_}ing"], +']S' => ["next bad word"], +']z' => ["end of open fold"], + +'^w<' => ["width decr$sign{_}ease"], +'^w>' => ["width incr$sign{_}ease"], +'^w^' => ["split, edit alt file"], +'^w_' => ["set height"], +'^w+' => ["height incr$sign{_}ease"], +'^w-' => ["height decr$sign{_}ease"], +'^w=' => ["same height"], +'^w^['=> ["esc"], +'^w]' => ["split, to tag"], +'^w}' => ["pre$sign{_}view tag"], +'^w|' => ["set width"], + +'^wb' => ["go to bot$sign{_}tom"], +'^wc' => [":close"], +'^w^c'=> ["abort"], +'^wd' => ["split, to def$sign{_}inition"], +'^wf' => ["split, file edit"], +'^wF' => ["^wf, jump to line"], +'^wg' => ["extra cmds"], +'^wh' => ["go left"], +'^wH' => ["move far left"], +'^wi' => ["split, to decl of id$sign{_}ent$sign{_}ifier"], +'^wj' => ["go down"], +'^wJ' => ["move to bottom"], +'^wk' => ["go up"], +'^wK' => ["move to top"], +'^wl' => ["go right"], +'^wL' => ["move far right"], +'^wn' => ["open new"], +'^wo' => [":only current"], +'^wp' => ["go to prev$sign{_}ious"], +'^wP' => ["go to pre$sign{_}view"], +'^wq' => [":quit current"], +'^wr' => ["rotate down$sign{_}ward$sign{_}s"], +'^wR' => ["rotate up$sign{_}ward$sign{_}s"], +'^ws' => ["split horiz$sign{_}ont$sign{_}al$sign{_}ly"], +'^wt' => ["go to top"], +'^wv' => ["split vert$sign{_}ic$sign{_}al$sign{_}ly"], +'^ww' => ["go to next", "Wrap around"], +'^wW' => ["go above$sign{_}/left"], +'^wx' => ["ex$sign{_}chan$sign{_}ge"], +'^wz' => ["close pre$sign{_}view"], + +'^wg^['=> ["esc"], +'^wg]' => ["split, :ts$sign{_}elect"], +'^wg}' => [":ptj$sign{_}ump to tag"], +'^wg^]'=> ["split, :tj$sign{_}ump"], +'^wgf' => ["file in tab"], +'^wgF' => ["^wgf, to line$sign{_}nr"], + +'v!' => ["external filter"], +'v:' => ["cmd on range"], +'v<' => ["un$sign{_}indent"], +'v=' => ["re$sign{_}ind$sign{_}ent"], +'v>' => ["ind$sign{_}ent"], +'v~' => ["toggle case"], +'v^['=> ["esc"], +'v^]'=> ["jump to tag"], + +'va' => ["ex$sign{_}tend area"], +'vA' => ["ap$sign{_}pend to block"], # block +'vc' => ["repl$sign{_}ace area"], +'vC' => ["repl$sign{_}ace full lines"], # like vS, but blocks are extended until eol +'v^c'=> ["abort"], +'vd' => ["delete area"], +'vD' => ["delete lines"], +'vg' => ["extra cmds"], +'v^g'=> ["select mode"], +'v^h'=> ["back$sign{_}space"], # delete in select mode, left otherwise +'vi' => ["extend inner a$sign{_}r$sign{_}ea"], +'vI' => ["insert to block"], # block +'vJ' => ["join lines"], +'vK' => ["help sel$sign{_}ect$sign{_}ion"], +'vo' => ["to other corner"], +'vO' => ["to other side"], +'v^o'=> ["visual once"], # select +'vp' => ["repl$sign{_}ace w/ paste"], +'vP' => ["repl$sign{_}ace w/ paste"], +'vr' => ["fill up w/ ch$sign{_}ar"], +'vS' => ["repl$sign{_}ace lines"], +'vu' => ["lower$sign{_}case"], +'vU' => ["upper$sign{_}case"], +'vv' => ["char$sign{_}wise"], +'vV' => ["line$sign{_}wise"], +'v^v'=> ["block$sign{_}wise"], +'vy' => ["yank area"], +'vY' => ["yank lines"], + +'vg^['=> ["esc"], +'vg?' => ["rot13 encode"], +'vgJ' => ["join literal$sign{_}ly"], +'vgq' => ["for$sign{_}mat"], +'vgw' => ["for$sign{_}mat still"], + +"va'" => ["quoted string"], +'va<' => ["<> block"], +'va[' => ["[] block"], +'va^['=> ["esc"], + +'vab' => ["() block"], +'vaB' => ["{} Block"], +'vap' => ["para$sign{_}graph"], +'vas' => ["senten$sign{_}ce"], +'vat' => ["xml tag block"], +'vaw' => ["word"], +'vaW' => ['word'], + +#'c^a' => ["complete"], #todo +#'c^b' => ["bol"], +#'c^d' => ["complete"], #todo +#'c^e' => ["eol"], +#'c^j' => ["execute cmd"], +#'c^l' => ["complete"], #todo +#'c^n' => ["complete"], #todo +#'c^p' => ["complete"], #todo +#'c^r' => 'i^r', # and then some... +# ## ["insert register"], +#'c^y' => ["selec$sign{_}tion to clip$sign{_}b$sign{_}oard"], + +'i^@' => ["last insert"], +'i^^' => ["toggle :lmap usag$sign{_}e"], +'i^[' => ["esc"], +'i^]' => ["abbrev$sign{_}iate"], +'i^_' => ["toggle lang$sign{_}uage"], + +'i^a' => ["insert prev$sign{_}ious"], +'i^b' => ["former i^_"], +'i^c' => ["abort, no abbr"], +'i^d' => ["un$sign{_}ind$sign{_}ent"], +'i^e' => ["ins char below"], +'i^f' => ["set indent$sign{_}ation"], +'i^g' => ["extra cmds"], +'i^h' => ["back$sign{_}space"], +'i^i' => ["tab"], +'i^j' => ["enter"], +'i^k' => ["di$sign{_}graph", "Key code"], +'i^l' => ["im leave ins mode"], +'i^m' => ["enter"], +'i^n' => ["find next keyword"], +'i^o' => ["exec$sign{_}ute cmd"], +'i^p' => ["find prev keyword"], +'i^r' => ["insert reg$sign{_}ister"], +'i^t' => ["indent"], +'i^u' => ["delete line"], +'i^v' => ["literal or ch$sign{_}ar$sign{_}cod$sign{_}e", "Verbatim or by Value"], +'i^w' => ["delete word back"], +'i^x' => ["ex$sign{_}pand mode"], +'i^y' => ["ins char above"], +'i^z' => [":sus$sign{_}pend in im"], + +'i^gk' => ["$sign{up} start col$sign{_}umn"], +'i^gj' => ["$sign{down} start col$sign{_}umn"], +'i^gu' => ["break undo seq$sign{_}uence"], +# other i^g keys (even esc) are not recognized + +'i^x^[' => ["esc"], +'i^x^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e"], +'i^x^e' => ["window up"], +'i^x^f' => ["file comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^i' => ["ident comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^k' => ["dict comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^l' => ["line comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^n' => ["next comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^o' => ["omni comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^p' => ["prev comp$sign{_}l$sign{_}ete"], +'i^x^s' => ["spell sugg$sign{_}est"], +'i^x^t' => ["thes$sign{_}aur$sign{_}us compl$sign{_}et$sign{_}e"], +'i^x^u' => ["cus$sign{_}tom comp$sign{_}l$sign{_}et$sign{_}e"], +'i^x^v' => ["ex cmd compl$sign{_}et$sign{_}e"], +'i^x^y' => ["window down"], + +# XXX ex mode if you want to go completely wild +}, + +mode => { + '' => "normal mode", + g => "extended commands (g)", + Z => "quit commands", + z => "additional commands (z)", + '[' => "backward search commands ([)", + ']' => "forward search commands (])", + '^w' => "window commands (ctrl-w)", + '^wg' => "extended window commands (ctrl-w g)", + v => "visual mode", + vg => "extended visual commands (v g)", + va => 'text object selection (v a/i)', +# c => "command-line mode", + i => "insert mode", + 'i^g' => "extended insert commands (i ctrl-g)", + 'i^x' => "insert completion commands (i ctrl-x)", +}, + +} diff --git a/vi.inc.pl b/vi.inc.pl index a4a20e8..bd9db3e 100644 --- a/vi.inc.pl +++ b/vi.inc.pl @@ -1,418 +1,408 @@ use utf8; +{ '' => { - desc => "normal mode", - - '~' => ["case toggle", "co undo"], - '!' => ["filt$sign{_}er lines", "co argm undo modec"], - '@' => ["play macro", "co arg undo"], - '#' => ["rev. find word", "pm ext vim6"], - '$' => ["eol", "pm"], - '%' => ["goto match", "pm"], - '^' => ['"soft" bol', "pm"], - '&' => [":s rep$sign{_}eat", "co undo"], - '*' => ["find word", "pm ext vim6"], - '(' => ["begin senten$sign{_}ce", 'pm'], - ')' => ["end senten$sign{_}ce", 'pm'], - '_' => ['"soft" bol down', "pm"], - '+' => ["next line", "pm"], - '`' => ["goto mark", "pm arg"], - '0' => ['"hard" bol', "pm"], - '^^'=> ["edit alt. file", "co"], - '-' => ["prev line", "pm"], - '=' => ["re$sign{_}ind$sign{_}ent", 'co argm undo'], - '?' => ["find rev.", "pm arg modec"], - ';' => ["repeat t/f/T/F", "pm"], - ':' => ["ex cmd line", "co modec"], - "'" => ["goto mark bol", "pm arg"], - '"' => ["use reg$sign{_}ister", 'co arg'], - '\\' => ["reser$sign{_}ved", 'me arg'], - '^\\' => ["to mode/$sign{_}ext$sign{_}ens$sign{_}ion$sign{_}s", "mo arg"], - ',' => ["reverse t/T/f/F", "pm"], - '<' => ["un$sign{_}ind$sign{_}ent", "co argm undo"], - '.' => ["repeat last cmd", "co undo"], - '>' => ["ind$sign{_}ent", "co argm undo"], - '/' => ["find", "pm arg modec"], - '[' => ["move back$sign{_}ward$sign{_}s", "me arg mode["], - '{' => ["begin parag.", "pm"], - ']' => ["move forw$sign{_}ard", "me arg mode]"], - '}' => ["end parag.", "pm"], - '^]'=> ["go to tag", "po"], - '|' => ["goto (1st) col", "pm"], - - 'a' => ["app$sign{_}end", "mi undo modei"], - 'A' => ["app$sign{_}end to eol", "mi undo modei"], - '^a'=> ["incr$sign{_}ement", "co undo", "Add one"], - 'b' => ["prev word", "pm", "Back"], - 'B' => ['prev word', "pm"], - '^b'=> ["page up", "pm"], - 'c' => ["chan$sign{_}ge", "mi argm undo modei"], - 'C' => ["chan$sign{_}ge to eol", "mi undo modei"], - '^c'=> ["abort", "co"], - 'd' => ["del$sign{_}ete", "co argm undo"], - 'D' => ["delete to eol", "co undo"], - '^d'=> ["scroll down", "po"], - 'e' => ["end word", "pm"], - 'E' => ['end word', "pm"], - '^e'=> ["window down", "po", "Extra line"], - 'f' => ["fwd to char", "pm arg"], - 'F' => ["back$sign{_}wd to char", "pm arg"], - '^f'=> ["page down", "pm", "page Forward"], - 'g' => ["extra cmds", "me arg modeg"], - 'G' => ["eof/$sign{_}goto ln", "pm"], - '^g'=> [":file (info)", "ci"], - 'h' => [$sign{left}, "pm"], - 'H' => ["screen top", "pm", 'Home row'], + '~' => ["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' => ["insert mode", "mi undo modei"], - 'I' => ["insert at bol", "mi undo modei"], - '^i'=> ["jump to newer", "pm ext vim6", 'Increase position'], - 'j' => [$sign{down}, "pm"], - 'J' => ["join lines", "co undo"], + 'i' => ["mi undo modei"], + 'I' => ["mi undo modei"], + '^i'=> ["pm ext vim6"], + 'j' => ["pm"], + 'J' => ["co undo"], '^j'=> "j", - 'k' => [$sign{up}, "pm"], - 'K' => ["help", "co", "looKup Keyword"], - 'l' => [$sign{right}, "pm"], - 'L' => ["screen bottom", "pm", "Lowermost Line"], - '^l'=> ["redraw", "ci"], - 'm' => ["set mark", "co arg"], - 'M' => ["screen mid$sign{_}dle", "pm"], + 'k' => ["pm"], + 'K' => ["co"], + 'l' => ["pm"], + 'L' => ["pm"], + '^l'=> ["ci"], + 'm' => ["co arg"], + 'M' => ["pm"], '^m'=> "+", - 'n' => ["next find", "pm"], - 'N' => ["prev find", "pm"], + 'n' => ["pm"], + 'N' => ["pm"], '^n'=> "j", - 'o' => ["line below", "mi undo modei", 'Open'], - 'O' => ["line above", "mi undo modei"], - '^o'=> ["jump to older", "pm ext vim6"], - 'p' => ["paste after", "co undo"], - 'P' => ["paste before", "co undo"], + 'o' => ["mi undo modei"], + 'O' => ["mi undo modei"], + '^o'=> ["pm ext vim6"], + 'p' => ["co undo"], + 'P' => ["co undo"], '^p'=> "k", - 'q' => ["rec$sign{_}ord macro", "mo arg", "Queue seQuence"], - 'Q' => ["ex mode", "mo"], - '^q'=> ["(xon)", "ci", 'Qome back'], # or ^v - 'r' => ["repl$sign{_}ace char", "co arg undo"], - 'R' => ["repl$sign{_}ace mode", "mi undo modei"], - '^r'=> ["redo", "co undo ext vim6"], - 's' => ["subst char", "mi undo modei"], - 'S' => ["subst line", "mi undo modei"], - '^s'=> ["(xoff)", "ci", 'Stop'], - 't' => ["till char", "pm arg"], - 'T' => ["back till char", "pm"], - '^t'=> ["back tag", "po"], # backtrag :P - 'u' => ["undo", "co undo"], - 'U' => ["undo line", "co undo"], - '^u'=> ["scroll up", "po"], - 'v' => ["visual mode", "mv modev"], - 'V' => ["visual lines", "mv modev"], - '^v'=> ["visual block", "mv modev ext vim6"], - 'w' => ["next word", "pm"], - 'W' => ['next word', "pm"], - '^w'=> ["win$sign{_}dow cmds", "me arg mode^w"], - 'x' => ["delete char", "co undo"], - 'X' => ["back$sign{_}space", "co undo"], - '^x'=> ["subs$sign{_}tract", "co undo"], - 'y' => ["yank", "co argm", '(copy)'], - 'Y' => ["yank line", "co"], - '^y'=> ["window up", "po", 'Yield'], - 'z' => ["extra cmds", "me arg modez"], - 'Z' => ["quit", "me arg modeZ"], - '^z'=> [":sus$sign{_}pend", "ci", 'zzz (as in sleep)'], + '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 => { - desc => "extended commands (g)", lead => "g", - '~' => ["case toggl$sign{_}e", "co argm ext vim6"], - '@' => ["oper$sign{_}at$sign{_}or$sign{_}func", "co ext vim7 new"], - '#' => ["rev. find string", "pm ext vim6"], - '$' => ["virt$sign{_}ual eol", "pm"], - '^' => [qq'"soft" bol v$sign{_}irt$sign{_}ual', "pm ext vim6"], - '&' => [":s rep$sign{_}eat glob$sign{_}al$sign{_}ly", "co", "Global substitute"], - '*' => ["find string", "pm ext vim6"], - '_' => [qq'"soft" eol', "pm ext vim6"], - '+' => ["later undo", "co ext vim7 new"], - '`' => ["to mark keepj$sign{_}umps", "pm ext vim6 arg"], - '8' => ["char hex val$sign{_}ue$sign{_}s", "ci"], - '0' => ["virtual bol", "pm ext vim6"], - '-' => ["earlier undo", "co ext vim7 new"], - '^['=> ["esc", "mo mode"], - ']' => ["go to tselect", "po"], - '^]'=> ["go to tjump", "po"], - ';' => ["to prev change pos", "pm"], - "'" => ["to mark keepj$sign{_}umps", "pm ext vim6 arg"], - '<' => ["see prev cmd output", "co ext vim7 new"], - '?' => ["rot13 encode", "co argm ext vim6"], - ',' => ["to next change pos", "pm"], - - 'a' => ["char value", "ci", "Get Ascii value"], - '^a'=> ["mem usage stats", "ci"], - 'd' => ["local declar$sign{_}ation", "pm ext vim6"], - 'D' => ["global declar$sign{_}ation", "pm ext vim6"], - 'e' => ["back to word end", "pm"], - 'E' => [qq'back to word end', "pm"], - 'f' => ["edit file at cur$sign{_}sor", "co ext vim6", "Goto File"], - 'F' => ["edit file + jump", "co ext vim7 new"], - 'g' => ["first line", "pm"], - '^g'=> ["cur$sign{_}sor pos info", "ci"], - 'h' => ["select mode", "mv modev", "Get Highlighted"], - 'H' => ["select lines", "mv modev", "Get Highlighted"], - '^h'=> ["select block", "mv modev ext vim6", "Get Highlighted"], - 'i' => ["insert at last pos", "mi undo modei"], - 'I' => ["insert at soft bol", "mi undo modei"], - 'j' => ["$sign{down} screen", "pm ext vim6"], - 'J' => ["join leave spac$sign{_}ing", "co"], - 'k' => ["$sign{up} screen", "pm ext vim6"], - 'm' => ["cen$sign{_}ter screen", "pm ext vim6"], - 'o' => [":goto (byte)", "pm"], - 'p' => ["paste still", "co undo"], - 'P' => ["paste before still", "co"], - 'q' => ["for$sign{_}mat", "co argm"], - 'Q' => ["ex mode manual :", "mo ext vim6"], - 'r' => ["virt. repl$sign{_}ace char", "co arg"], - 'R' => ["virt. repl$sign{_}ace mode", "mi undo modei"], - 's' => ["sleep", "ci ext vim6", "Go to Sleep"], - 't' => ["next tab", "po ext vim7 new", "Goto Tab"], - 'T' => ["tab back", "po ext vim7 new"], - 'u' => ["lower$sign{_}case", "co argm ext vim6"], # XXX undo? - 'U' => ["up$sign{_}per$sign{_}case", "co undo argm ext vim6"], - 'v' => ["prev$sign{_}ious highl$sign{_}ight", 'mv modev', 'precedinG Visual'], - 'V' => ["avoid resel$sign{_}ect$sign{_}ion", "co"], - 'w' => ["for$sign{_}mat still", "co argm ext vim7 new"], - 'x' => ["Netrw$sign{_}BrowseX", "co ext vim7 new"], + '~' => ["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 => { - desc => "quit commands", lead => "Z", - '^['=> ["esc", "mo mode"], + '^['=> ["mo mode"], - 'Q' => [" :q! (force)", "co ext vim6"], - 'Z' => [" :wq (write)", "co"], + 'Q' => ["co ext vim6"], + 'Z' => ["co"], }, # mode Z z => { - desc => "additional commands (z)", lead => "z", - '^' => ["page above", "po"], - '+' => ["page below", "po"], - '-' => ["line at bottom bol", "po", "don't (-) see any further"], - '=' => ["sug$sign{_}gest spell$sign{_}ing", "co ext vim7 new"], - '.' => ["line at center bol", "po"], - '^['=> ["esc", "mo mode"], - - 'a' => ["toggle fold", "co ext vim6 folding"], - 'A' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly", "co ext vim6 folding"], - 'b' => ["line at bot. bol", "po"], - 'c' => ["close fold", "co ext vim6 folding"], - 'C' => ["close folds rec$sign{_}curs$sign{_}ive$sign{_}ly", "co ext vim6 folding"], - 'd' => ["delete fold", "co ext vim6 folding"], - 'D' => ["delete folds rec$sign{_}urs$sign{_}ive", "co ext vim6 folding"], - 'e' => ["cursor at right side", "po"], - 'E' => ["elimi$sign{_}nate f$sign{_}olds", "co ext vim6 folding"], - 'f' => ["create fold", "co argm ext vim6 folding"], - 'F' => ["fold lines", "co ext vim6 folding"], - 'g' => ["add spell$sign{_}ing", "co ext vim7 new", 'Good word'], - 'G' => ["temp spell$sign{_}ing", "co ext vim7 new"], - 'h' => ["scroll $sign{right}", "po"], - 'H' => ["scroll $sign{right} half scr$sign{_}een", "po"], - 'i' => ["toggle all folds", "co ext vim6 folding"], - 'j' => ["next fold start", "pm ext vim6 folding"], - 'k' => ["prev fold end", "pm ext vim6 folding"], - 'l' => ["scroll $sign{left}", "po"], - 'L' => ["scroll $sign{left} half scr$sign{_}een", "po"], - '^m'=> ["line at top bol", "po"], - 'm' => ["fold more", "co ext vim6 folding"], - 'M' => ["close all folds", "co ext vim6 folding"], - 'n' => ["fold none", "co ext vim6 folding"], - 'N' => ["fold norm$sign{_}al", "co ext vim6 folding"], - 'o' => ["open fold", "co ext vim6 folding"], - 'O' => ["open folds rec$sign{_}urs$sign{_}ive$sign{_}ly", "co ext vim6 folding"], - 'r' => ["reduce folding", "co ext vim6 folding"], - 'R' => ["open all folds", "co ext vim6 folding"], - 's' => ["cursor at left side", "po"], - 't' => ["line at top", "po"], - 'u' => ["undo spell$sign{_}ing", "co arg ext vim7 new"], - 'v' => ["unfold cursor line", "co ext vim6 folding"], - 'w' => ["add missp$sign{_}ell$sign{_}ing", "co ext vim7 new", "Wrong word"], - 'W' => ["temp missp$sign{_}ell$sign{_}ing", "co ext vim7 new"], - 'x' => ["update folds", "co ext vim6 folding"], - 'X' => ["re$sign{_}apply f$sign{_}olds", "co ext vim6 folding"], - 'z' => ["line at center", "po", "Zee Zenter (with a funny accent)"], + '^' => ["po"], + '+' => ["po"], + '-' => ["po"], + '=' => ["co ext vim7 new"], + '.' => ["po"], + '^['=> ["mo mode"], + + '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 '[' => { - desc => "backward search commands ([)", lead => "[", - "`" => ["previous lc mark", "pm ext vim6"], - '#' => ["previous open #if$sign{_}/#else", "pm"], - '(' => ["previous open (", "pm"], + "`" => ["pm ext vim6"], + '#' => ["pm"], + '(' => ["pm"], '*' => "[/", - '/' => ["start of C com$sign{_}m$sign{_}ent", "pm"], + '/' => ["pm"], "'" => "[` ^", # ext vim6 - '{' => ["previous open {", "pm"], - '[' => ["section back$sign{_}ward$sign{_}s", "pm"], - '^['=> ["esc", "mo mode"], - ']' => [qq'section back$sign{_}ward$sign{_}s', "pm"], - - 'c' => ["start of change backw$sign{_}ards", "pm"], - 'd' => ["define line", "ci"], - 'D' => ["defin$sign{_}ition", "co"], - '^d'=> ["to defin$sign{_}it$sign{_}ion", "po"], + '{' => ["pm"], + '[' => ["pm"], + '^['=> ["mo mode"], + ']' => ["pm"], + + 'c' => ["pm"], + 'd' => ["ci"], + 'D' => ["co"], + '^d'=> ["po"], 'f' => "gf", # deprecated - 'i' => ["first occur$sign{_}renc$sign{_}e line", 'ci'], - 'I' => ["first occur$sign{_}renc$sign{_}e", 'co'], - '^i'=> ["to first occur$sign{_}renc$sign{_}e", 'po'], - 'm' => ["start of funct$sign{_}ion", "pm"], - 'p' => ["P reind$sign{_}ent$sign{_}ed", "co"], - 'P' => ["[p", "co"], - 's' => ["last missp$sign{_}ell$sign{_}ing", "po ext vim7 new"], - 'S' => ["last bad word", "po ext vim7 new"], - 'z' => ["start of open fold", "pm ext vim6 folding"], + '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 [ ']' => { - desc => "forward search commands (])", lead => "]", - "`" => ["next lc mark", "pm ext vim6"], - '#' => ["next open #endif$sign{_}/#else", "pm"], - ')' => ["next open )", "pm"], + "`" => ["pm ext vim6"], + '#' => ["pm"], + ')' => ["pm"], '*' => "]/", "'" => "]` ^", # ext vim6 - '/' => ["end of C com$sign{_}m$sign{_}ent", "pm"], - '[' => [qq'section forw$sign{_}ard', "pm"], - '^['=> ["esc", "mo mode"], - ']' => ["section forw$sign{_}ard", "pm"], - '}' => ["next open }", "pm"], - - 'c' => ["start of change forw$sign{_}ards", "pm"], - 'd' => ["next define line", "ci"], - 'D' => ["next define", "co"], - '^d'=> ["to next define", "po"], + '/' => ["pm"], + '[' => ["pm"], + '^['=> ["mo mode"], + ']' => ["pm"], + '}' => ["pm"], + + 'c' => ["pm"], + 'd' => ["ci"], + 'D' => ["co"], + '^d'=> ["po"], 'f' => "gf", # deprecated - 'i' => ["next occur$sign{_}renc$sign{_}e line", "ci"], - 'I' => ["next occur$sign{_}renc$sign{_}e", "co"], - '^i'=> ["to occur$sign{_}renc$sign{_}e", "po"], - 'm' => ["end of funct$sign{_}ion", "pm"], - 'p' => ["p reind$sign{_}ent$sign{_}ed", "co"], + 'i' => ["ci"], + 'I' => ["co"], + '^i'=> ["po"], + 'm' => ["pm"], + 'p' => ["co"], 'P' => "[p", - 's' => ["next missp$sign{_}ell$sign{_}ing", "po ext vim7 new"], - 'S' => ["next bad word", "po ext vim7 new"], - 'z' => ["end of open fold", "pm ext vim6 folding"], + 's' => ["po ext vim7 new"], + 'S' => ["po ext vim7 new"], + 'z' => ["pm ext vim6 folding"], }, # mode ] '^w' => { - desc => "window commands (ctrl-w)", lead => $ascii ? "'w" : "ŵ", - '<' => ["width decr$sign{_}ease", "po"], - '>' => ["width incr$sign{_}ease", "po"], - '^' => ["split, edit alt file", "co"], - '_' => ["set height", "po"], - '+' => ["height incr$sign{_}ease", "po"], - '-' => ["height decr$sign{_}ease", "po"], - '=' => ["same height", "po"], - '^['=> ["esc", "mo mode"], - ']' => ["split, to tag", "po"], - '}' => ["pre$sign{_}view tag", "po"], - '|' => ["set width", "po"], - - 'b' => ["go to bot$sign{_}tom", "po"], - 'c' => [":close", "po"], - '^c'=> ["abort", "mo mode"], - 'd' => ["split, to def$sign{_}inition", "po"], - 'f' => ["split, file edit", "co"], - 'F' => ["^wf, jump to line", "co ext vim7 new"], - 'g' => ["extra cmds", "me arg mode^wg"], - 'h' => ["go left", "po"], - 'H' => ["move far left", "po"], - 'i' => ["split, to decl of id$sign{_}ent$sign{_}ifier", "po"], - 'j' => ["go down", "po"], - 'J' => ["move to bottom", "po"], - 'k' => ["go up", "po"], - 'K' => ["move to top", "po"], - 'l' => ["go right", "po"], - 'L' => ["move far right", "po"], - 'n' => ["open new", "co"], - 'o' => [":only current", "po"], - 'p' => ["go to prev$sign{_}ious", "po"], - 'P' => ["go to pre$sign{_}view", "po"], - 'q' => [":quit current", "co"], - 'r' => ["rotate down$sign{_}ward$sign{_}s", "po"], - 'R' => ["rotate up$sign{_}ward$sign{_}s", "po"], - 's' => ["split horiz$sign{_}ont$sign{_}al$sign{_}ly", "po"], + '<' => ["po"], + '>' => ["po"], + '^' => ["co"], + '_' => ["po"], + '+' => ["po"], + '-' => ["po"], + '=' => ["po"], + '^['=> ["mo mode"], + ']' => ["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' => ["go to top", "po"], - 'v' => ["split vert$sign{_}ic$sign{_}al$sign{_}ly", "po"], - 'w' => ["go to next", "po", "Wrap around"], - 'W' => ["go above$sign{_}/left", "po"], - 'x' => ["ex$sign{_}chan$sign{_}ge", "po"], - 'z' => ["close pre$sign{_}view", "po"], + 't' => ["po"], + 'v' => ["po"], + 'w' => ["po"], + 'W' => ["po"], + 'x' => ["po"], + 'z' => ["po"], }, # mode ^w '^wg' => { - desc => "extended window commands (ctrl-w g)", lead => $ascii ? "'wg" : "ŵg", - '^['=> ["esc", "mo mode"], - ']' => ["split, :ts$sign{_}elect", "po"], - '}' => [":ptj$sign{_}ump to tag", "po"], - '^]'=> ["split, :tj$sign{_}ump", "po"], - 'f' => ["file in tab", "co ext vim7 new"], - 'F' => ["^wgf, to line$sign{_}nr", "co ext vim7 new"], + '^['=> ["mo mode"], + ']' => ["po"], + '}' => ["po"], + '^]'=> ["po"], + 'f' => ["co ext vim7 new"], + 'F' => ["co ext vim7 new"], }, # mode ^w g v => { - desc => "visual mode", - - '!' => ["external filter", "co"], - ':' => ["cmd on range", "mo modec"], - '<' => ["un$sign{_}indent", "co"], - '=' => ["re$sign{_}ind$sign{_}ent", 'co undo'], - '>' => ["ind$sign{_}ent", 'co'], - '~' => ["toggle case", "co ext vim6"], - '^['=> ["esc", "mo mode"], - '^]'=> ["jump to tag", "po"], + '!' => ["co"], + ':' => ["mo modec"], + '<' => ["co"], + '=' => ['co undo'], + '>' => ['co'], + '~' => ["co ext vim6"], + '^['=> ["mo mode"], + '^]'=> ["po"], '^\\'=>'^\\', - 'a' => ["ex$sign{_}tend area", 'me modeva arg ext vim6'], - 'A' => ["ap$sign{_}pend to block", 'mi modei ext vim6'], # block - 'c' => ["repl$sign{_}ace area", 'mi modei ext vim6'], - 'C' => ["repl$sign{_}ace full lines", 'mi modei ext vim6'], # like vS, but blocks are extended until eol - '^c'=> ["abort", "mo mode"], - 'd' => ["delete area", "co ext vim6"], - 'D' => ["delete lines", "co ext vim6"], - 'g' => ["extra cmds", "me arg modevg"], - '^g'=> ["select mode", "mv"], - '^h'=> ["back$sign{_}space", 'co'], # delete in select mode, left otherwise - 'i' => ["extend inner a$sign{_}r$sign{_}ea", "me modeva arg ext vim6"], - 'I' => ["insert to block", "mi modei ext vim6"], # block - 'J' => ["join lines", "co"], - 'K' => ["help sel$sign{_}ect$sign{_}ion", 'co'], - 'o' => ["to other corner", "pm"], - 'O' => ["to other side", "pm"], - '^o'=> ["visual once", "mv"], # select - 'p' => ["repl$sign{_}ace w/ paste", 'co'], - 'P' => ["repl$sign{_}ace w/ paste", 'co'], + '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' => ["fill up w/ ch$sign{_}ar", 'co arg'], + 'r' => ['co arg'], 'R' => "vS", # "might change in future" '^s'=> "^s", 's' => "vc", - 'S' => ["repl$sign{_}ace lines", 'mi modei ext vim6'], - 'u' => ["lower$sign{_}case", "co ext vim6"], - 'U' => ["upper$sign{_}case", "co ext vim6"], - 'v' => ["char$sign{_}wise", "mv"], - 'V' => ["line$sign{_}wise", "mv"], - '^v'=> ["block$sign{_}wise", "mv ext vim6"], + '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' => ["yank area", "co"], - 'Y' => ["yank lines", "co"], + '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 @@ -422,40 +412,37 @@ v => { }, # mode v vg => { - desc => "extended visual commands (v g)", lead => "g", - '^['=> ["esc", "mv modev"], - '?' => ["rot13 encode", "co ext vim6"], - 'J' => ["join literal$sign{_}ly", 'co ext vim6'], - 'q' => ["for$sign{_}mat", "co ext vim6"], + '^['=> ["mv modev"], + '?' => ["co ext vim6"], + 'J' => ['co ext vim6'], + 'q' => ["co ext vim6"], 'v' => 'gv', - 'w' => ["for$sign{_}mat still", 'co ext vim7 new'], + 'w' => ['co ext vim7 new'], }, # mode v g va => { - desc => 'text object selection (v a/i)', - '(' => 'vab', ')' => 'vab', '`' => "va'", - "'" => ["quoted string", 'pm ext vim7 new'], + "'" => ['pm ext vim7 new'], '"' => "va'", - '<' => ["<> block", 'pm ext vim6'], + '<' => ['pm ext vim6'], '>' => 'va<', - '[' => ["[] block", 'pm ext vim6'], + '[' => ['pm ext vim6'], '{' => 'vaB', - '^['=> ["esc", 'mv modev'], + '^['=> ['mv modev'], ']' => 'va[', '}' => 'vaB', - 'b' => ["() block", 'pm ext vim6'], - 'B' => ["{} Block", 'pm ext vim6'], - 'p' => ["para$sign{_}graph", 'pm ext vim6'], - 's' => ["senten$sign{_}ce", 'pm ext vim6'], - 't' => ["xml tag block", 'pm ext vim7 new'], - 'w' => ["word", 'pm ext vim6'], - 'W' => ['word', 'pm ext vim6'], + '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 => { @@ -464,96 +451,92 @@ va => { # '^_' => 'i^_', # '^^' => 'i^^', # '^\\'=>'^\\', -# '^a' => ["complete", ""], #todo -# '^b' => ["bol", "po"], +# '^a' => [""], #todo +# '^b' => ["po"], # '^c' => 'i^c', -# '^d' => ["complete", ""], #todo -# '^e' => ["eol", "po"], +# '^d' => [""], #todo +# '^e' => ["po"], # '^h' => 'i^h', -# '^j' => ["execute cmd", "co"], +# '^j' => ["co"], # '^k' => 'i^k', -# '^l' => ["complete", ""], #todo -# '^n' => ["complete", ""], #todo -# '^p' => ["complete", ""], #todo +# '^l' => [""], #todo +# '^n' => [""], #todo +# '^p' => [""], #todo # '^r' => 'i^r', # and then some... -# ## ["insert register", "co arg ext vim6"], +# ## ["co arg ext vim6"], # '^q' => '^q', # '^u' => 'i^u', # '^v' => 'i^v', # '^w' => 'i^w', -# '^y' => ["selec$sign{_}tion to clip$sign{_}b$sign{_}oard", "co"], +# '^y' => ["co"], #}, # mode c i => { - desc => "insert mode", - - '^@' => ["last insert", "co"], - '^^' => ["toggle :lmap usag$sign{_}e", "co ext vim6"], - '^[' => ["esc", "mo mode"], - '^]' => ["abbrev$sign{_}iate", "co ext vim6"], - '^_' => ["toggle lang$sign{_}uage", "co ext vim6"], + '^@' => ["co"], + '^^' => ["co ext vim6"], + '^[' => ["mo mode"], + '^]' => ["co ext vim6"], + '^_' => ["co ext vim6"], '^\\'=>'^\\', - '^a' => ["insert prev$sign{_}ious", "co ext vim6"], - '^b' => ["former i^_", "no ext vim6"], - '^c' => ["abort, no abbr", "mo mode"], - '^d' => ["un$sign{_}ind$sign{_}ent", 'co'], - '^e' => ["ins char below", "co ext vim6"], - '^f' => ["set indent$sign{_}ation", 'co'], - '^g' => ["extra cmds", "me modei^g arg"], - '^h' => ["back$sign{_}space", "co"], - '^i' => ["tab", "co"], - '^j' => ["enter", "co"], - '^k' => ["di$sign{_}graph", 'co arg arg ext vim6 linkdigraphs', "Key code"], - '^l' => ["im leave ins mode", "mo mode ext vim6"], # insertmode only - '^m' => ["enter", "co"], - '^n' => ["find next keyword", "pm ext vim6"], - '^o' => ["exec$sign{_}ute cmd", 'co'], - '^p' => ["find prev keyword", "pm 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' => ["insert reg$sign{_}ister", 'co arg ext vim6'], + '^r' => ['co arg ext vim6'], '^s' => "^s", - '^t' => ["indent", "co"], - '^u' => ["delete line", "co"], - '^v' => ["literal or ch$sign{_}ar$sign{_}cod$sign{_}e", 'co linkcharset', "Verbatim or by Value"], - '^w' => ["delete word back", "co"], - '^x' => ["ex$sign{_}pand mode", 'me arg modei^x ext vim6'], - '^y' => ["ins char above", "co ext vim6"], - '^z' => [":sus$sign{_}pend in im", "ci ext vim6"], # insertmode only + '^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' => { - desc => "extended insert commands (i ctrl-g)", lead => $ascii ? "'g" : "ĝ", - 'k' => ["$sign{up} start col$sign{_}umn", 'pm'], - 'j' => ["$sign{down} start col$sign{_}umn", 'pm'], - 'u' => ["break undo seq$sign{_}uence", 'co'], + 'k' => ['pm'], + 'j' => ['pm'], + 'u' => ['co'], # other keys (even esc) are not recognized }, # mode i ^g 'i^x' => { - desc => "insert completion commands (i ctrl-x)", lead => $ascii ? "'x" : "x̂", - '^[' => ["esc", "mo mode"], # yes, it really leaves insert mode - '^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e", 'co'], - '^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e", 'co'], - '^e' => ["window up", "po"], - '^f' => ["file comp$sign{_}l$sign{_}et$sign{_}e", 'co'], - '^i' => ["ident comp$sign{_}l$sign{_}et$sign{_}e", 'co'], - '^k' => ["dict comp$sign{_}l$sign{_}et$sign{_}e", 'co'], - '^l' => ["line comp$sign{_}l$sign{_}et$sign{_}e", 'co'], - '^n' => ["next comp$sign{_}l$sign{_}et$sign{_}e", 'co'], - '^o' => ["omni comp$sign{_}l$sign{_}et$sign{_}e", 'co ext vim7 new'], - '^p' => ["prev comp$sign{_}l$sign{_}ete", 'co'], - '^s' => ["spell sugg$sign{_}est", 'co'], + '^[' => ["mo mode"], # yes, it really leaves insert mode + '^]' => ['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' => ["thes$sign{_}aur$sign{_}us compl$sign{_}et$sign{_}e", 'co'], - '^u' => ["cus$sign{_}tom comp$sign{_}l$sign{_}et$sign{_}e", 'co ext vim7 new'], - '^v' => ["ex cmd compl$sign{_}et$sign{_}e", 'co'], - '^y' => ["window down", "po"], + '^t' => ['co'], + '^u' => ['co ext vim7 new'], + '^v' => ['co'], + '^y' => ["po"], }, # mode i ^x # XXX ex mode if you want to go completely wild - +} diff --git a/vi.plp b/vi.plp index 67326cb..f5820f1 100644 --- a/vi.plp +++ b/vi.plp @@ -2,7 +2,7 @@ Html({ title => 'vi cheat sheet', - version => 'v1.2', + version => 'v1.3', description => [ "Interactive cheat sheet for vi text editors, notably Vim,", "describing each key in various modes.", @@ -30,8 +30,10 @@ Html({ <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'vi.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'vi.eng.inc.pl' or die $@; +$info->{def} = do 'vi.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows}); :> diff --git a/vimperator.eng.inc.pl b/vimperator.eng.inc.pl new file mode 100644 index 0000000..70fde80 --- /dev/null +++ b/vimperator.eng.inc.pl @@ -0,0 +1,139 @@ +use utf8; +{ + +key => { + '~' => ["open home$sign{_}dir"], + '@' => ["play macro"], + '^' => ["left of page"], + '$' => ["right of page"], + '#' => ["rev. find word"], + '*' => ["find word"], + '^^'=> ["last tab"], + '?' => ["find rev."], + '/' => ["find"], + '[' => ["focus forw$sign{_}ard"], + ']' => ["focus back"], + ':' => ["comm$sign{_}and line mode"], + ';' => ["extend$sign{_}ed hint$sign{_}s mode"], + "'" => ["jump to mark"], + '|' => ["toggle source"], + + 'a' => ["add bookm$sign{_}ark"], + 'A' => ["toggle bookm$sign{_}ark$sign{_}ed"], + '^a'=> ["incr$sign{_}em$sign{_}ent url nr"], + 'b' => ["to buffer"], + 'B' => ["list buffers"], + '^b'=> ["page up"], + '^c'=> ["stop loading"], + '^d'=> ["scroll down"], + 'd' => ["close tab"], + 'D' => ["close tab left$sign{_}ward$sign{_}s"], + 'i' => ["caret mode"], + 'f' => ["quick$sign{_}hint mode"], + 'F' => ["f in tab"], + '^f'=> ["page down"], + 'g' => ["extra cmds"], + 'G' => ["last/% line"], + '^g'=> ["file name"], + 'h' => [$sign{left}], + 'H' => ["page back"], + 'j' => [$sign{down}], + 'k' => [$sign{up}], + 'l' => [$sign{right}], + 'L' => ["page forw$sign{_}ard"], + 'M' => ["mark url"], + 'm' => ["mark line"], + 'n' => ["find next"], + 'N' => ["find prev$sign{_}ious"], + '^n'=> ["next tab"], + 'o' => ["open"], + 'O' => ["alter url"], + 'p' => ["open pasted url"], + 'P' => ["p in tab"], + 'q' => ["record macro"], + 'r' => ["reload page"], + 'R' => ["reload uncach$sign{_}e$sign{_}d"], + 't' => ["tab open new"], + 'T' => ["tab open curr$sign{_}ent"], + '^v'=> ["pass single"], + '^u'=> ["scroll up"], + 'u' => ["restore closed tab"], + '^x'=> ["decr$sign{_}em$sign{_}ent url nr"], + 'y' => ["copy url"], + 'Y' => ["copy select$sign{_}ion"], + 'z' => ["zoom"], + 'Z' => ["quit"], + '^z'=> ["pass throu$sign{_}gh"], + + 'g0' => ["first tab"], + 'g$' => ["last tab"], + + 'gb' => ["repeat buffer cmd"], + 'gB' => ["reverse gb"], + 'gf' => ["view source"], + 'gF' => ["source extern$sign{_}al"], + 'g^g'=> ["file details"], + 'gg' => ["first line"], + 'gh' => ["open home$sign{_}page"], + 'gH' => ["tab with home$sign{_}page"], + 'gi' => ["last input field"], + 'gn' => ["tabopen url mark", 'Go in New tab'], + 'go' => ["open url mark"], + 'gP' => ["$sign{alias}P inactive"], + 'gt' => ["switch tab"], + 'gT' => ["tab back"], + 'gu' => ["parent dir$sign{_}ectory"], + 'gU' => ["site root"], + + ';;' => ["focus"], + ';?' => ["element details"], + ';a' => ["save prompt"], + ';b' => ["open bg tab"], + ';c' => ["context menu"], + ';f' => ["frame focus"], + ';F' => ["multiple bg tabs"], + ';i' => ["image"], + ';I' => ["image in tab"], + ';o' => ["open"], + ';O' => ["open prompt"], + ';s' => ["save"], + ';t' => ["open in tab"], + ';T' => ["tab prompt"], + ';v' => ["view source"], + ';w' => ["open in wind$sign{_}ow"], + ';W' => ["wind$sign{_}ow prompt"], + ';y' => ["copy url"], + ';Y' => ["copy text"], + + ']f' => ["next frame$sign{_}set"], + ']]' => ["open next"], + + '[f' => ["previous frame$sign{_}set"], + '[[' => ["open prev"], + + 'zi' => ["en$sign{_}large text", 'Zoom In'], + 'zm' => ["en$sign{_}large more", 'Zoom More'], + 'zo' => ["shrink text", 'Zoom Out'], + 'zr' => ["tinier text", 'Zoom Reduce'], + 'zz' => ["reset text size", 'Zoom Zero'], + 'zI' => ["zoom in"], + 'zM' => ["zoom more"], + 'zO' => ["zoom out"], + 'zR' => ["zoom out more", 'Zoom Reduce'], + 'zZ' => ["zoom reset", 'Zoom Zero'], + + 'ZQ' => ["quit no save"], + 'ZZ' => ["quit save ses$sign{_}s$sign{_}ion"], +}, + +mode => { + '' => 'normal mode', + 'g' => 'extended commands (g)', + ';' => 'extended hints (;)', + ']' => '(])', + '[' => '([)', + 'z' => 'zoom commands (z)', + 'Z' => 'quit commands (Z)', +}, + +} diff --git a/vimperator.inc.pl b/vimperator.inc.pl index 07f7a32..c696edd 100644 --- a/vimperator.inc.pl +++ b/vimperator.inc.pl @@ -1,168 +1,163 @@ use utf8; +{ '' => { - desc => 'normal mode', - - '~' => ["open home$sign{_}dir", 'cp'], - '@' => ["play macro", 'mo arg'], - '^' => ["left of page", 'pm'], + '~' => ['cp'], + '@' => ['mo arg'], + '^' => ['pm'], '0' => '^', - '$' => ["right of page", 'pm'], - '#' => ["rev. find word", 'pm'], - '*' => ["find word", 'pm'], + '$' => ['pm'], + '#' => ['pm'], + '*' => ['pm'], '+' => 'zi', '-' => 'zo', - '^^'=> ["last tab", 'po'], - '?' => ["find rev.", 'pm args modec'], - '/' => ["find", 'pm args modec'], - '[' => ["focus forw$sign{_}ard", 'me arg mode['], - ']' => ["focus back", 'me arg mode]'], - ':' => ["comm$sign{_}and line mode", 'mo args'], - ';' => ["extend$sign{_}ed hint$sign{_}s mode", 'me arg args mode;'], - "'" => ["jump to mark", 'pm'], + '^^'=> ['po'], + '?' => ['pm args modec'], + '/' => ['pm args modec'], + '[' => ['me arg mode['], + ']' => ['me arg mode]'], + ':' => ['mo args'], + ';' => ['me arg args mode;'], + "'" => ['pm'], '`' => "'", - '|' => ["toggle source", 'cp v2 v2.2'], - - 'a' => ["add bookm$sign{_}ark", 'mo args'], - 'A' => ["toggle bookm$sign{_}ark$sign{_}ed", 'mo'], - '^a'=> ["incr$sign{_}em$sign{_}ent url nr", 'cp'], - 'b' => ["to buffer", 'po args'], - 'B' => ["list buffers", 'ci'], - '^b'=> ["page up", 'pm'], - '^c'=> ["stop loading", 'co'], - '^d'=> ["scroll down", 'pm'], - 'd' => ["close tab", 'co'], - 'D' => ["close tab left$sign{_}ward$sign{_}s", 'co'], - 'i' => ["caret mode", 'mv'], + '|' => ['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' => ["quick$sign{_}hint mode", 'cp args'], - 'F' => ["f in tab", 'mi args'], - '^f'=> ["page down", 'pm'], # spacebar - 'g' => ["extra cmds", 'me modeg arg'], - 'G' => ["last/% line", 'pm'], - '^g'=> ["file name", 'ci'], - 'h' => [$sign{left}, 'pm'], - 'H' => ["page back", 'cp'], - 'j' => [$sign{down}, 'pm'], - 'k' => [$sign{up}, 'pm'], - 'l' => [$sign{right}, 'pm'], - 'L' => ["page forw$sign{_}ard", 'cp'], - 'M' => ["mark url", 'mo arg'], - 'm' => ["mark line", 'mo arg'], - 'n' => ["find next", 'pm'], - 'N' => ["find prev$sign{_}ious", 'pm'], - '^n'=> ["next tab", 'po'], - 'o' => ["open", 'cp'], - 'O' => ["alter url", 'cp'], + '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' => ["open pasted url", 'cp'], - 'P' => ["p in tab", 'mi'], + 'p' => ['cp'], + 'P' => ['mi'], '^p'=> 'gT', - 'q' => ["record macro", 'mv arg'], - 'r' => ["reload page", 'co'], - 'R' => ["reload uncach$sign{_}e$sign{_}d", 'cp'], - 't' => ["tab open new", 'mi'], - 'T' => ["tab open curr$sign{_}ent", 'mi'], - '^v'=> ["pass single", 'co arg'], - '^u'=> ["scroll up", 'pm'], - 'u' => ["restore closed tab", 'mi'], - '^x'=> ["decr$sign{_}em$sign{_}ent url nr", 'cp'], - 'y' => ["copy url", 'mo'], - 'Y' => ["copy select$sign{_}ion", 'mo'], + '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' => ["zoom", 'ci modez arg'], - 'Z' => ["quit", 'me modeZ arg'], - '^z'=> ["pass throu$sign{_}gh", 'mv'], + 'z' => ['ci modez arg'], + 'Z' => ['me modeZ arg'], + '^z'=> ['mv'], }, # normal mode g => { - desc => 'extended commands (g)', lead => 'g', - '0' => ["first tab", 'po'], - '$' => ["last tab", 'po'], + '0' => ['po'], + '$' => ['po'], '^' => 'g0', - 'b' => ["repeat buffer cmd", 'po'], - 'B' => ["reverse gb", 'po'], - 'f' => ["view source", 'cp'], - 'F' => ["source extern$sign{_}al", 'mo'], - '^g'=> ["file details", 'ci'], - 'g' => ["first line", 'pm'], - 'h' => ["open home$sign{_}page", 'cp'], - 'H' => ["tab with home$sign{_}page", 'mi'], - 'i' => ["last input field", 'pm'], - 'n' => ["tabopen url mark", 'mi arg', 'Go in New tab'], - 'o' => ["open url mark", 'cp arg'], - 'P' => ["$sign{alias}P inactive", 'mi'], - 't' => ["switch tab", 'po'], - 'T' => ["tab back", 'po'], - 'u' => ["parent dir$sign{_}ectory", 'cp'], - 'U' => ["site root", 'cp'], + '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 ';' => { - desc => 'extended hints (;)', lead => ';', - ';' => ["focus", 'pm'], - '?' => ["element details", 'ci'], - 'a' => ["save prompt", 'mo args'], - 'b' => ["open bg tab", 'mi v2'], - 'c' => ["context menu", 'v2 v2.2'], - 'f' => ["frame focus", 'pm v2'], # previously ';o' - 'F' => ["multiple bg tabs", 'mi v2'], # previously ';t' - 'i' => ["image", 'cp v2 v2.2'], - 'I' => ["image in tab", 'mi v2 v2.2'], - 'o' => ["open", 'cp'], - 'O' => ["open prompt", 'cp args'], - 's' => ["save", 'mo'], - 't' => ["open in tab", 'mi'], - 'T' => ["tab prompt", 'mi args'], - 'v' => ["view source", 'cp'], - 'w' => ["open in wind$sign{_}ow", 'mi'], - 'W' => ["wind$sign{_}ow prompt", 'mi args'], - 'y' => ["copy url", 'mo'], - 'Y' => ["copy text", '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 ; + ']' => { - desc => '(])', lead => ']', - 'f' => ["next frame$sign{_}set", 'pm'], - ']' => ["open next", 'cp'], + 'f' => ['pm'], + ']' => ['cp'], }, # mode ] '[' => { - desc => '([)', lead => '[', - 'f' => ["previous frame$sign{_}set", 'pm'], - '[' => ["open prev", 'cp'], + 'f' => ['pm'], + '[' => ['cp'], }, # mode [ z => { - desc => 'zoom commands (z)', lead => 'z', - 'i' => ["en$sign{_}large text", 'ci', 'Zoom In'], - 'm' => ["en$sign{_}large more", 'ci', 'Zoom More'], - 'o' => ["shrink text", 'ci', 'Zoom Out'], - 'r' => ["tinier text", 'ci', 'Zoom Reduce'], - 'z' => ["reset text size", 'ci', 'Zoom Zero'], - 'I' => ["zoom in", 'ci'], - 'M' => ["zoom more", 'ci'], - 'O' => ["zoom out", 'ci'], - 'R' => ["zoom out more", 'ci', 'Zoom Reduce'], - 'Z' => ["zoom reset", 'ci', 'Zoom Zero'], + 'i' => ['ci'], + 'm' => ['ci'], + 'o' => ['ci'], + 'r' => ['ci'], + 'z' => ['ci'], + 'I' => ['ci'], + 'M' => ['ci'], + 'O' => ['ci'], + 'R' => ['ci'], + 'Z' => ['ci'], }, # mode z Z => { - desc => 'quit commands (Z)', lead => 'Z', - 'Q' => ["quit no save", 'mo'], - 'Z' => ["quit save ses$sign{_}s$sign{_}ion", 'mo'], + 'Q' => ['mo'], + 'Z' => ['mo'], }, # mode Z +} diff --git a/vimperator.plp b/vimperator.plp index 26d58f5..b54417d 100644 --- a/vimperator.plp +++ b/vimperator.plp @@ -2,7 +2,7 @@ Html({ title => 'vimperator cheat sheet', - version => 'v1.1', + version => 'v1.2', description => [ "Interactive cheat sheet for the Vimperator Firefox extension,", "describing the function of each key.", @@ -31,8 +31,10 @@ Html({ <: -use Shiar_Sheet::Keyboard; -my $keys = Shiar_Sheet::Keyboard->new({do 'vimperator.inc.pl'}); +use Shiar_Sheet::Keyboard 2; +my $info = do 'vimperator.eng.inc.pl' or die $@; +$info->{def} = do 'vimperator.inc.pl'; +my $keys = Shiar_Sheet::Keyboard->new($info); $keys->map($get{map}) or undef $get{map}; $keys->print_rows($get{rows}); :>