:
use utf8;
use strict;
use warnings;
no warnings 'qw'; # you know what you doing
no warnings 'uninitialized'; # save some useless checks for more legible code
use Shiar_Sheet::KeySigns qw(%sign); # dependant on $get{ascii}
our $VERSION = 'v1.2';
$header{content_type} = "text/html; charset=$sign{charset}";
:>
vi cheat sheet
<:
my %styles = map {$_ => $_} qw(dark circus mono red terse);
our $style = exists $get{style} && $styles{$get{style}} || 'light';
printf(qq{\n},
$_ eq $style ? 'stylesheet' : 'alternate stylesheet', "$_.css", $_
) for keys %styles;
our $showkeys = exists $get{keys} && $get{keys} ne '0';
print "\n".'' unless $showkeys;
print "\n".''
if $showkeys and $get{keys} eq 'ghost';
:>
vi/vim cheat sheet
normal mode (default)
Esc normal mode
<:
use Shiar_Sheet::Keyboard;
my $keys = Shiar_Sheet::Keyboard->new({do 'vim.inc.pl'});
$keys->map($get{map}) or undef $get{map};
$keys->print_rows($get{rows});
:>
info
Info command: shows/does something without altering anything.
motion
Moves the cursor, or defines the range for an operator (<:= $sign{motion} :>).
positioning
Other movement (jumps, window (re)positioning).
command
Direct action command.
ins mode
Enters Insert or Replace mode.
mode
Enters a different mode.
vis mode
Enters Visual or Select mode.
key cmd
Additional key commands (click for overview).
key<:= $sign{arg} :>
Commands with a dot need a char argument afterwards.
key<:= $sign{motion} :>
Requires a motion afterwards, operates between cursor and destination.
vim
Not in original Vi (assessment incomplete).
vim7
New in vim version 7.x.
keyboard map is
<:= $get{map} ? 'set to ' : '' :><:= $keys->{map} :>
ascii mode is
<:= defined $sign{-ascii} && 'forced ' :><:=
$sign{-ascii} ? 'on' : 'off' :>
keys are
<:= $showkeys ? 'always shown' : 'hidden if unassigned' :><:=
!exists $get{keys} && ' by default' :>
default style is
<:= defined $get{style} && 'set to ' :><:= $style :>