From 2034c72e12562eda33ce53d92cfef2216b6fcf3e Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 18 Jun 2010 21:28:29 +0000 Subject: [PATCH] overhaul keyboard module include syntax Separate key functions (classes) from (translatable) descriptions. --- Shiar_Sheet/Keyboard.pm | 70 ++-- keyboard.plp | 14 +- less.eng.inc.pl | 113 ++++++ less.inc.pl | 196 +++++---- less.plp | 12 +- mplayer.eng.inc.pl | 58 +++ mplayer.inc.pl | 98 ++--- mplayer.plp | 8 +- mutt.eng.inc.pl | 206 ++++++++++ mutt.inc.pl | 373 +++++++++--------- mutt.plp | 8 +- nethack.eng.inc.pl | 142 +++++++ nethack.inc.pl | 250 ++++++------ nethack.plp | 8 +- readline.eng.inc.pl | 83 ++++ readline.inc.pl | 135 ++++--- readline.plp | 8 +- starcraft.eng.inc.pl | 203 ++++++++++ starcraft.inc.pl | 254 ++++++------ starcraft.plp | 6 +- vi.eng.inc.pl | 462 ++++++++++++++++++++++ vi.inc.pl | 851 ++++++++++++++++++++-------------------- vi.plp | 8 +- vimperator.eng.inc.pl | 139 +++++++ vimperator.inc.pl | 241 ++++++------ vimperator.plp | 8 +- 26 files changed, 2673 insertions(+), 1281 deletions(-) create mode 100644 less.eng.inc.pl create mode 100644 mplayer.eng.inc.pl create mode 100644 mutt.eng.inc.pl create mode 100644 nethack.eng.inc.pl create mode 100644 readline.eng.inc.pl create mode 100644 starcraft.eng.inc.pl create mode 100644 vi.eng.inc.pl create mode 100644 vimperator.eng.inc.pl 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}); :> -- 2.30.0