overhaul keyboard module include syntax
[sheet.git] / vi.eng.inc.pl
diff --git a/vi.eng.inc.pl b/vi.eng.inc.pl
new file mode 100644 (file)
index 0000000..9a4f6f1
--- /dev/null
@@ -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 <span style="font-variant:small-caps">word</span>'],
+'^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 <span style="font-variant:small-caps">word</span>'],
+'^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 <span style="font-variant:small-caps">word</span>'],
+'^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 <span style="font-variant:small-caps">word</span> 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'<span style="font-variant:small-caps">section</span> 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'<span style="font-variant:small-caps">section</span> 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<' => ["&lt;&gt; block"],
+'va[' => ["[] block"],
+'va^['=> ["esc"],
+
+'vab' => ["() block"],
+'vaB' => ["{} Block"],
+'vap' => ["para$sign{_}graph"],
+'vas' => ["senten$sign{_}ce"],
+'vat' => ["xml tag block"],
+'vaw' => ["word"],
+'vaW' => ['<span style="font-variant:small-caps">word</span>'],
+
+#'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' => ["<em>im</em> 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 <em>im</em>"],
+
+'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)",
+},
+
+}