X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/d1bf245dac9f5a1401ac536b5a19fff9aa39b72f..a6bf5822695c1e3608f1692398d47e28a9623a79:/keyboard/vi.eng.inc.pl
diff --git a/keyboard/vi.eng.inc.pl b/keyboard/vi.eng.inc.pl
index 58ac2f3..1a904c6 100644
--- a/keyboard/vi.eng.inc.pl
+++ b/keyboard/vi.eng.inc.pl
@@ -8,552 +8,13 @@ my @motions = qw(
{
title => 'vi/vim',
-version => 1.5,
+version => 1.6,
description => [
"Interactive cheat sheet for vi text editors, notably Vim,",
"describing each key in various modes.",
],
keywords => [qw' vi vim nvi '],
-key => {
-
- "\e"=> "normal mode",
- '~' => "case toggle",
- '!' => "filt<>er lines",
- '@' => "play macro",
- '#' => "rev. find word",
- '$' => "eol",
- '%' => "goto match",
- '^' => '"soft" bol',
- '&' => ":s rep<>eat",
- '*' => "find word",
- '(' => "begin senten<>ce",
- ')' => "end senten<>ce",
- '_' => '"soft" bol down',
- '+' => "next line",
- '`' => "goto mark",
- '0' => '"hard" bol',
- '^^'=> "edit alt. file",
- '-' => "prev line",
- '=' => "re<>ind<>ent",
- '?' => "find rev.",
- ';' => "repeat t/f/T/F",
- ':' => "ex cmd line",
- "'" => "goto mark bol",
- '"' => "use reg<>ister",
- '\\' => "reser<>ved",
- '^\\' => "to mode/<>ext<>ens<>ion<>s",
- ',' => "reverse t/T/f/F",
- '<' => "un<>ind<>ent",
- '.' => "repeat last cmd",
- '>' => "ind<>ent",
- '/' => "find",
- '[' => "move back<>ward<>s",
- '{' => "begin parag.",
- ']' => "move forw<>ard",
- '}' => "end parag.",
- '^]'=> "go to tag",
- '|' => "goto (1st) col",
-
- 'a' => "app<>end",
- 'A' => "app<>end to eol",
- '^a'=> "incr<>ement\nAdd one",
- 'b' => "prev word\nBack",
- 'B' => 'prev word',
- '^b'=> "page up",
- 'c' => "chan<>ge",
- 'C' => "chan<>ge to eol",
- '^c'=> "abort",
- 'd' => "del<>ete",
- 'D' => "delete to eol",
- '^d'=> "scroll down",
- 'e' => "end word",
- 'E' => 'end word',
- '^e'=> "window down\nExtra line",
- 'f' => "fwd to char",
- 'F' => "back<>wd to char",
- '^f'=> "page down\npage Forward",
- 'g' => "extra cmds",
- 'G' => "eof/<>goto ln",
- '^g'=> ":file (info)",
- 'h' => "",
- 'H' => "screen top\nHome row",
- 'i' => "insert mode",
- 'I' => "insert at bol",
- '^i'=> "jump to newer\nIncrease position",
- 'j' => "",
- 'J' => "join lines",
- 'k' => "",
- 'K' => "help\nlooKup Keyword",
- 'l' => "",
- 'L' => "screen bottom\nLowermost Line",
- '^l'=> "redraw",
- 'm' => "set mark",
- 'M' => "screen mid<>dle",
- 'n' => "next find",
- 'N' => "prev find",
- 'o' => "line below\nOpen",
- 'O' => "line above",
- '^o'=> "jump to older",
- 'p' => "paste after",
- 'P' => "paste before",
- 'q' => "rec<>ord macro\nQueue seQuence",
- 'Q' => "ex mode",
- '^q'=> "(xon)\nQome back",
- 'r' => "repl<>ace char",
- 'R' => "repl<>ace mode",
- '^r'=> "redo",
- 's' => "subst char",
- 'S' => "subst line",
- '^s'=> "(xoff)\nStop",
- '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<>dow cmds",
- 'x' => "delete char",
- 'X' => "back<>space",
- '^x'=> "subs<>tract",
- 'y' => "yank\n(copy)",
- 'Y' => "yank line",
- '^y'=> "window up\nYield",
- 'z' => "extra cmds",
- 'Z' => "quit",
- '^z'=> ":sus<>pend\nzzz (as in sleep)",
-
- 'g~' => "case toggl<>e",
- 'g@' => "oper<>at<>or<>func",
- 'g#' => "rev. find string",
- 'g$' => "virt<>ual eol",
- 'g^' => qq'"soft" bol v<>irt<>ual',
- 'g&' => ":s rep<>eat glob<>al<>ly\nGlobal substitute",
- 'g*' => "find string",
- 'g_' => qq'"soft" eol',
- 'g+' => "later undo",
- 'g`' => "to mark keepj<>umps",
- 'g8' => "char hex val<>ue<>s",
- 'g0' => "virtual bol",
- 'g-' => "earlier undo",
- "g\e"=> "normal mode",
- 'g]' => "go to tselect",
- 'g^]'=> "go to tjump",
- 'g;' => "to prev change pos",
- "g'" => "to mark keepj<>umps",
- 'g<' => "see prev cmd output",
- 'g?' => "rot13 encode",
- 'g,' => "to next change pos",
-
- 'ga' => "char value\nGet Ascii value",
- 'g^a'=> "mem usage stats",
- 'gd' => "local declar<>ation",
- 'gD' => "global declar<>ation",
- 'ge' => "back to word end",
- 'gE' => qq'back to word end',
- 'gf' => "edit file at cur<>sor\nGoto File",
- 'gF' => "edit file + jump",
- 'gg' => "first line",
- 'g^g'=> "cur<>sor pos info",
- 'gh' => "select mode\nGet Highlighted",
- 'gH' => "select lines\nGet Highlighted",
- 'g^h'=> "select block\nGet Highlighted",
- 'gi' => "insert at last pos",
- 'gI' => "insert at soft bol",
- 'gj' => " screen",
- 'gJ' => "join leave spac<>ing",
- 'gk' => " screen",
- 'gm' => "cen<>ter screen",
- 'gn' => "select next find",
- 'gN' => "select prev find",
- 'go' => ":goto (byte)",
- 'gp' => "paste still",
- 'gP' => "paste before still",
- 'gq' => "for<>mat",
- 'gQ' => "ex mode manual :",
- 'gr' => "virt. repl<>ace char",
- 'gR' => "virt. repl<>ace mode",
- 'gs' => "sleep\nGo to Sleep",
- 'gt' => "next tab\nGoto Tab",
- 'gT' => "tab back",
- 'gu' => "lower<>case",
- 'gU' => "up<>per<>case",
- 'gv' => "prev<>ious highl<>ight\nprecedinG Visual",
- 'gV' => "avoid resel<>ect<>ion",
- 'gw' => "for<>mat still",
- 'gx' => "Netrw<>BrowseX",
-
- "Z\e"=> "normal mode",
- 'ZQ' => " :q! (force)",
- 'ZZ' => " :wq (write)",
-
- 'z^' => "page above",
- 'z+' => "page below",
- 'z-' => "line at bottom bol\ndon't (-) see any further",
- 'z=' => "sug<>gest spell<>ing",
- 'z.' => "line at center bol",
- "z\e"=> "normal mode",
-
- 'za' => "toggle fold",
- 'zA' => "toggle fold rec<>urs<>ive<>ly",
- 'zb' => "line at bot. bol",
- 'zc' => "close fold",
- 'zC' => "close folds rec<>curs<>ive<>ly",
- 'zd' => "delete fold",
- 'zD' => "delete folds rec<>urs<>ive",
- 'ze' => "cursor at right side",
- 'zE' => "elimi<>nate f<>olds",
- 'zf' => "create fold",
- 'zF' => "fold lines",
- 'zg' => "add spell<>ing\nGood word",
- 'zG' => "temp spell<>ing",
- 'zh' => "scroll ",
- 'zH' => "scroll half scr<>een",
- 'zi' => "toggle all folds",
- 'zj' => "next fold start",
- 'zk' => "prev fold end",
- 'zl' => "scroll ",
- 'zL' => "scroll half scr<>een",
- 'z^m'=> "line at top bol",
- 'zm' => "fold more",
- 'zM' => "close all folds",
- 'zn' => "fold none",
- 'zN' => "fold norm<>al",
- 'zo' => "open fold",
- 'zO' => "open folds rec<>urs<>ive<>ly",
- 'zr' => "reduce folding",
- 'zR' => "open all folds",
- 'zs' => "cursor at left side",
- 'zt' => "line at top",
- 'zu' => "undo spell<>ing",
- 'zv' => "unfold cursor line",
- 'zw' => "add missp<>ell<>ing\nWrong word",
- 'zW' => "temp missp<>ell<>ing",
- 'zx' => "update folds",
- 'zX' => "re<>apply f<>olds",
- 'zz' => "line at center\nZee Zenter (with a funny accent)",
-
- "[`" => "previous lc mark",
- '[#' => "previous open #if<>/#else",
- '[(' => "previous open (",
- '[/' => "start of C com<>m<>ent",
- '[{' => "previous open {",
- '[[' => "section back<>ward<>s",
- "[\e"=> "normal mode",
- '[]' => qq'section back<>ward<>s',
-
- '[c' => "start of change backw<>ards",
- '[d' => "define line",
- '[D' => "defin<>ition",
- '[^d'=> "to defin<>it<>ion",
- '[i' => "first occur<>renc<>e line",
- '[I' => "first occur<>renc<>e",
- '[^i'=> "to first occur<>renc<>e",
- '[m' => "start of funct<>ion",
- '[p' => "P reind<>ent<>ed",
- '[s' => "last missp<>ell<>ing",
- '[S' => "last bad word",
- '[z' => "start of open fold",
-
- "]`" => "next lc mark",
- ']#' => "next open #endif<>/#else",
- '])' => "next open )",
- ']/' => "end of C com<>m<>ent",
- '][' => qq'section forw<>ard',
- "]\e"=> "normal mode",
- ']]' => "section forw<>ard",
- ']}' => "next open }",
-
- ']c' => "start of change forw<>ards",
- ']d' => "next define line",
- ']D' => "next define",
- ']^d'=> "to next define",
- ']i' => "next occur<>renc<>e line",
- ']I' => "next occur<>renc<>e",
- ']^i'=> "to occur<>renc<>e",
- ']m' => "end of funct<>ion",
- ']p' => "p reind<>ent<>ed",
- ']s' => "next missp<>ell<>ing",
- ']S' => "next bad word",
- ']z' => "end of open fold",
-
- '^w<' => "width decr<>ease",
- '^w>' => "width incr<>ease",
- '^w^' => "split, edit alt file",
- '^w_' => "set height",
- '^w+' => "height incr<>ease",
- '^w-' => "height decr<>ease",
- '^w=' => "same height",
- "^w\e"=> "normal mode",
- '^w]' => "split, to tag",
- '^w}' => "pre<>view tag",
- '^w|' => "set width",
-
- '^wb' => "go to bot<>tom",
- '^wc' => ":close",
- '^w^c'=> "abort",
- '^wd' => "split, to def<>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<>ent<>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<>ious",
- '^wP' => "go to pre<>view",
- '^wq' => ":quit current",
- '^wr' => "rotate down<>ward<>s",
- '^wR' => "rotate up<>ward<>s",
- '^ws' => "split horiz<>ont<>al<>ly",
- '^wt' => "go to top",
- '^wT' => "to tab",
- '^wv' => "split vert<>ic<>al<>ly",
- '^ww' => "go to next\nWrap around",
- '^wW' => "go above<>/left",
- '^wx' => "ex<>chan<>ge",
- '^wz' => "close pre<>view",
-
- "^wg\e"=> "normal mode",
- '^wg]' => "split, :ts<>elect",
- '^wg}' => ":ptj<>ump to tag",
- '^wg^]'=> "split, :tj<>ump",
- '^wgf' => "file in tab",
- '^wgF' => "^wgf, to line<>nr",
-
- 'v!' => "external filter",
- 'v:' => "cmd on range",
- 'v<' => "un<>indent",
- 'v=' => "re<>ind<>ent",
- 'v>' => "ind<>ent",
- 'v~' => "toggle case",
- "v\e"=> "normal mode",
- 'v^]'=> "jump to tag",
-
- 'va' => "ex<>tend area",
- 'vA' => "ap<>pend to block", # block
- 'v^a'=> "incr<>ement num<>bers",
- 'vc' => "repl<>ace area",
- 'vC' => "repl<>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",
- 'vi' => "extend inner a<>r<>ea",
- 'vI' => "insert to block", # block
- 'vJ' => "join lines",
- 'vK' => "help sel<>ect<>ion",
- 'vo' => "to other corner",
- 'vO' => "to other side",
- 'v^o'=> "visual once", # select
- 'vp' => "repl<>ace w/ paste",
- 'vP' => "repl<>ace w/ paste",
- 'vr' => "fill up w/ ch<>ar",
- 'vS' => "repl<>ace lines",
- 'vu' => "lower<>case",
- 'vU' => "upper<>case",
- 'vv' => "char<>wise",
- 'vV' => "line<>wise",
- 'v^v'=> "block<>wise",
- 'v^x'=> "decr<>ement num<>bers",
- 'vy' => "yank area",
- 'vY' => "yank lines",
-
- "vg\e"=> "visual mode",
- 'vg?' => "rot13 encode",
- 'vg^a'=> "seq. incr<>ement",
- 'vg^g'=> "count region info",
- 'vgJ' => "join literal<>ly",
- 'vgq' => "for<>mat",
- 'vgw' => "for<>mat still",
- 'vg^x'=> "seq. decr<>ement",
-
- "va'" => "quoted string",
- 'va<' => "<> block",
- 'va[' => "[] block",
- "va\e"=> "visual mode",
-
- 'vab' => "() block",
- 'vaB' => "{} Block",
- 'vap' => "para<>graph",
- 'vas' => "senten<>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<>tion to clip<>b<>oard",
-
- 'i^@' => "last insert",
- 'i^^' => "toggle :lmap usag<>e",
- "i\e" => "normal mode",
- 'i^]' => "abbrev<>iate",
- 'i^_' => "toggle lang<>uage",
-
- 'i^a' => "insert prev<>ious",
- 'i^b' => "former i^_",
- 'i^c' => "abort, no abbr",
- 'i^d' => "un<>ind<>ent",
- 'i^e' => "ins char below",
- 'i^f' => "set indent<>ation",
- 'i^g' => "extra cmds",
- 'i^h' => "back<>space",
- 'i^i' => "tab",
- 'i^j' => "enter",
- 'i^k' => "di<>graph\nKey code",
- 'i^l' => "im leave ins mode",
- 'i^m' => "enter",
- 'i^n' => "find next keyword",
- 'i^o' => "exec<>ute cmd",
- 'i^p' => "find prev keyword",
- 'i^r' => "insert reg<>ister",
- 'i^t' => "indent",
- 'i^u' => "delete line",
- 'i^v' => "literal or ch<>ar<>cod<>e\nVerbatim or by Value",
- 'i^w' => "delete word back",
- 'i^x' => "ex<>pand mode",
- 'i^y' => "ins char above",
- 'i^z' => ":sus<>pend in im",
-
- "i^g\e"=> "insert mode",
- 'i^gk' => " start col<>umn",
- 'i^gj' => " start col<>umn",
- 'i^gu' => "break undo seq<>uence",
- 'i^gU' => "keep undo seq<>uence",
- # other i^g keys (even esc) are not recognized
-
- "i^x\e" => "normal mode",
- 'i^x^]' => "tag comp<>l<>et<>e",
- 'i^x^d' => "def<>ine compl<>et<>e",
- 'i^x^e' => "window up",
- 'i^x^f' => "file comp<>l<>et<>e",
- 'i^x^i' => "ident comp<>l<>et<>e",
- 'i^x^k' => "dict comp<>l<>et<>e",
- 'i^x^l' => "line comp<>l<>et<>e",
- 'i^x^n' => "next comp<>l<>et<>e",
- 'i^x^o' => "omni comp<>l<>et<>e",
- 'i^x^p' => "prev comp<>l<>ete",
- 'i^x^s' => "spell sugg<>est",
- 'i^x^t' => "thes<>aur<>us compl<>et<>e",
- 'i^x^u' => "cus<>tom comp<>l<>et<>e",
- 'i^x^v' => "ex cmd compl<>et<>e",
- 'i^x^y' => "window down",
-
- # plugins
- 'gc' => "(un)<>com<>ment\ncommentary or tComment plugin",
- 'vgc' => "(un)<>com<>ment\ncommentary or tComment plugin",
- 'gl' => "align to left\nlion plugin, also good for easy-align",
- 'vgl' => "align to left\nlion plugin, also good for easy-align",
- 'gL' => "align to right\nlion plugin",
- 'vgL' => "align to right\nlion plugin",
- 'i^gs' => "sur<>round\nsurround plugin",
-
- # unimpaired
- '[a' => "prev<>ious file\nunimpaired map for :prev",
- ']a' => "next file\nunimpaired map for :n",
- '[A' => "first file\nunimpaired map for :rew",
- ']A' => "last file\nunimpaired map for :la",
- '[b' => "prev<>ious buffer\nunimpaired map for :bp",
- ']b' => "next buffer\nunimpaired map for :bn",
- '[B' => "first buffer\nunimpaired map for :br",
- ']B' => "last buffer\nunimpaired map for :bl",
- '[e' => "exchange line above\nunimpaired plugin",
- ']e' => "exchange line belo<>w\nunimpaired plugin",
- '[f' => "preced<>ing file alph<>abet<>ic<>al<>ly\nunimpaired plugin",
- ']f' => "next file alph<>abet<>ic<>al<>ly\nunimpaired plugin",
- '[l' => "previous loc<>at<>ion\nunimpaired map for :lp",
- ']l' => "next loc<>ation\nunimpaired map for :lne",
- '[L' => "first loc<>ation\nunimpaired map for :lr",
- ']L' => "last loc<>ation\nunimpaired map for :lla",
- '[^l'=> "next file in loc<>at<>ions\nunimpaired map for :lpf",
- ']^l'=> "file back in loc<>at<>ions\nunimpaired map for :lnf",
- '[n' => "previous conflict<>/hunk\nunimpaired plugin",
- ']n' => "next confl<>ict<>/hunk\nunimpaired plugin",
- '[o' => "enable option\nunimpaired plugin",
- ']o' => "disable option\nunimpaired plugin",
- 'yo' => "toggle option\nunimpaired plugin",
- '[q' => "previous quickfix\nunimpaired map for :cp",
- ']q' => "next quickfix error\nunimpaired map for :cn",
- '[Q' => "first quickfix\nunimpaired map for :cr",
- ']Q' => "last quickfix error\nunimpaired map for :cla",
- '[^q'=> "quickfix file b<>ack\nunimpaired map for :cpf",
- ']^q'=> "next file in q<>uick<>f<>ix\nunimpaired map for :cnf",
- '[t' => "previous tag\nunimpaired map for :tp",
- ']t' => "next tag\nunimpaired map for :tn",
- '[T' => "first tag\nunimpaired map for :tr",
- ']T' => "last tag\nunimpaired map for :tl",
- '[u' => "url encode\nunimpaired plugin",
- ']u' => "url decode\nunimpaired plugin",
- '[x' => "xml encode\nunimpaired plugin",
- ']x' => "xml decode\nunimpaired plugin",
- '[y' => "escape c str<>ing\nunimpaired plugin",
- ']y' => "unescap<>e c str<>ing\nunimpaired plugin",
-
- (map { ("d$_" => "delete to $_") } qw( g z [ ] )),
- 'dW' => 'delete word',
- 'db' => 'delete word',
- 'dB' => 'delete word',
- 'de' => 'delete word e<>nd',
- 'dE' => 'delete word e<>nd',
- 'df' => 'delete to char<>acter',
- 'dF' => 'delete to char<>acter',
- 'dG' => 'delete to line<>/eof',
- 'dH' => 'delete to top',
- 'dj' => 'delete line',
- 'dk' => 'delete line',
- 'dL' => 'delete to bottom',
- 'dM' => 'delete to middle',
- 'dn' => 'delete to next res<>ult',
- 'dN' => 'delete to prev res<>ult',
- 'dt' => 'delete upto ch<>ar<>acter',
- 'dT' => 'delete upto ch<>ar<>acter',
- 'dw' => 'delete word',
- 'd,' => 'delete to prev ch<>ar<>acter',
- 'd;' => 'delete to next ch<>ar<>acter',
- 'd/' => 'delete to res<>ult',
- 'd?' => 'delete to res<>ult',
- 'd`' => 'delete to mark',
- "d'" => 'delete lines to m<>ark',
- 'd*' => 'delete to find',
- 'd#' => 'delete to find',
- 'd%' => 'delete to line pct',
- 'd^' => 'delete to soft bol',
- 'd0' => 'delete to bol',
- 'd|' => 'delete to col<>umn',
- 'd{' => 'delete par<>agr<>aph',
- 'd}' => 'delete rest of p<>ar<>agr<>aph',
- 'd(' => 'delete senten<>ce',
- 'd)' => 'delete rest of s<>en<>ten<>ce',
- 'da' => 'delete area',
- 'di' => 'delete inner',
- 'dd' => 'delete line',
- 'do' => 'diff obtain',
- 'dp' => 'diff put',
- 'ds' => 'delete surr<>oun<>d<>ing',
-},
-
mode => {
'' => "normal mode",
g => "extended commands (g)",
@@ -591,650 +52,699 @@ flag => {
def => {
'' => {
- '~' => "g4 undo",
- '!' => "g4 argm undo modec",
- '@' => "g4 arg undo",
- '#' => "g2 v6",
- '$' => "g2",
- '%' => "g2",
- '^' => "g2",
- '&' => "g4 undo",
- '*' => "g2 v6",
- '(' => 'g2',
- ')' => 'g2',
- '_' => "g2",
- '+' => "g2",
- '`' => "g2 arg",
- '0' => "g2",
- '^^'=> "g4",
- '-' => "g2",
- '=' => 'g4 argm undo',
- '?' => "g2 arg modec",
- ';' => "g2",
- ':' => "g4 modec",
- "'" => "g2 arg",
- '"' => 'g4 arg',
- '\\' => 'g9 arg',
- '^\\' => "g7 arg",
- ',' => "g2",
- '<' => "g4 argm undo",
- '.' => "g4 undo",
- '>' => "g4 argm undo",
- '/' => "g2 arg modec",
- '[' => "g9 arg mode[",
- '{' => "g2",
- ']' => "g9 arg mode]",
- '}' => "g2",
- '^]'=> "g3",
- '|' => "g2",
-
- 'a' => "g6 undo modei",
- 'A' => "g6 undo modei",
- '^a'=> "g4 undo",
- 'b' => "g2",
- 'B' => "g2",
- '^b'=> "g3",
- 'c' => "g6 argm undo modei",
- 'C' => "g6 undo modei",
- '^c'=> "g4",
- 'd' => "g4 argm undo moded",
- 'D' => "g4 undo",
- '^d'=> "g3",
- 'e' => "g2",
- 'E' => "g2",
- '^e'=> "g3",
- 'f' => "g2 arg",
- 'F' => "g2 arg",
- '^f'=> "g3",
- 'g' => "g9 arg modeg",
- 'G' => "g2",
- '^g'=> "g1",
- 'h' => "g2",
- 'H' => "g2",
- '^h'=> "=h",
- 'i' => "g6 undo modei",
- 'I' => "g6 undo modei",
- '^i'=> "g2 v6",
- 'j' => "g2",
- 'J' => "g4 undo",
- '^j'=> "=j",
- 'k' => "g2",
- 'K' => "g4",
- 'l' => "g2",
- 'L' => "g2",
- '^l'=> "g1",
- 'm' => "g4 arg",
- 'M' => "g2",
- '^m'=> "=+",
- 'n' => "g2",
- 'N' => "g2",
- '^n'=> "=j",
- 'o' => "g6 undo modei",
- 'O' => "g6 undo modei",
- '^o'=> "g2 v6",
- 'p' => "g4 undo",
- 'P' => "g4 undo",
- '^p'=> "=k",
- 'q' => "g7 arg",
- 'Q' => "g7",
- '^q'=> "g1", # or ^v
- 'r' => "g4 arg undo",
- 'R' => "g6 undo modei",
- '^r'=> "g4 undo v6",
- 's' => "g6 undo modei",
- 'S' => "g6 undo modei",
- '^s'=> "g1",
- 't' => "g2 arg",
- 'T' => "g2 arg",
- '^t'=> "g3",
- 'u' => "g4 undo",
- 'U' => "g4 undo",
- '^u'=> "g3",
- 'v' => "g8 modev",
- 'V' => "g8 modev",
- '^v'=> "g8 modev v6",
- 'w' => "g2",
- 'W' => "g2",
- '^w'=> "g9 arg mode^w",
- 'x' => "g4 undo",
- 'X' => "g4 undo",
- '^x'=> "g4 undo",
- 'y' => "g4 argm",
- 'Y' => "g4",
- '^y'=> "g3",
- 'z' => "g9 arg modez",
- 'Z' => "g9 arg modeZ",
- '^z'=> "g1",
+ '~' => ["g4 undo", "case toggle"],
+ '!' => ["g4 argm undo modec", "filt<>er lines"],
+ '@' => ["g4 arg undo", "play macro"],
+ '#' => ["g2 v6", "rev. find word"],
+ '$' => ["g2", "eol"],
+ '%' => ["g2", "goto match"],
+ '^' => ["g2", '"soft" bol'],
+ '&' => ["g4 undo", ":s rep<>eat"],
+ '*' => ["g2 v6", "find word"],
+ '(' => ['g2', "begin senten<>ce"],
+ ')' => ['g2', "end senten<>ce"],
+ '_' => ["g2", '"soft" bol down'],
+ '+' => ["g2", "next line"],
+ '`' => ["g2 arg", "goto mark"],
+ '0' => ["g2", '"hard" bol'],
+ '^^'=> ["g4", "edit alt. file"],
+ '-' => ["g2", "prev line"],
+ '=' => ['g4 argm undo', "re<>ind<>ent"],
+ '?' => ["g2 arg modec", "find rev."],
+ ';' => ["g2", "repeat t/f/T/F"],
+ ':' => ["g4 modec", "ex cmd line"],
+ "'" => ["g2 arg", "goto mark bol"],
+ '"' => ['g4 arg', "use reg<>ister"],
+ '\\' => ['g9 arg', "reser<>ved"],
+ '^\\' => ["g7 arg", "to mode/<>ext<>ens<>ion<>s"],
+ ',' => ["g2", "reverse t/T/f/F"],
+ '<' => ["g4 argm undo", "un<>ind<>ent"],
+ '.' => ["g4 undo", "repeat last cmd"],
+ '>' => ["g4 argm undo", "ind<>ent"],
+ '/' => ["g2 arg modec", "find"],
+ '[' => ["g9 arg mode[", "move back<>ward<>s"],
+ '{' => ["g2", "begin parag."],
+ ']' => ["g9 arg mode]", "move forw<>ard"],
+ '}' => ["g2", "end parag."],
+ '^]'=> ["g3", "go to tag"],
+ '|' => ["g2", "goto (1st) col"],
+
+ 'a' => ["g6 undo modei", "app<>end"],
+ 'A' => ["g6 undo modei", "app<>end to eol"],
+ '^a'=> ["g4 undo", "incr<>ement\nAdd one"],
+ 'b' => ["g2", "prev word\nBack"],
+ 'B' => ["g2", 'prev word'],
+ '^b'=> ["g3", "page up"],
+ 'c' => ["g6 argm undo modei", "chan<>ge"],
+ 'C' => ["g6 undo modei", "chan<>ge to eol"],
+ '^c'=> ["g4", "abort"],
+ 'd' => ["g4 argm undo moded", "del<>ete"],
+ 'D' => ["g4 undo", "delete to eol"],
+ '^d'=> ["g3", "scroll down"],
+ 'e' => ["g2", "end word"],
+ 'E' => ["g2", 'end word'],
+ '^e'=> ["g3", "window down\nExtra line"],
+ 'f' => ["g2 arg", "fwd to char"],
+ 'F' => ["g2 arg", "back<>wd to char"],
+ '^f'=> ["g3", "page down\npage Forward"],
+ 'g' => ["g9 arg modeg", "extra cmds"],
+ 'G' => ["g2", "eof/<>goto ln"],
+ '^g'=> ["g1", ":file (info)"],
+ 'h' => ["g2", ""],
+ 'H' => ["g2", "screen top\nHome row"],
+ '^h'=> \'h',
+ 'i' => ["g6 undo modei", "insert mode"],
+ 'I' => ["g6 undo modei", "insert at bol"],
+ '^i'=> ["g2 v6", "jump to newer\nIncrease position"],
+ 'j' => ["g2", ""],
+ 'J' => ["g4 undo", "join lines"],
+ '^j'=> \'j',
+ 'k' => ["g2", ""],
+ 'K' => ["g4", "help\nlooKup Keyword"],
+ 'l' => ["g2", ""],
+ 'L' => ["g2", "screen bottom\nLowermost Line"],
+ '^l'=> ["g1", "redraw"],
+ 'm' => ["g4 arg", "set mark"],
+ 'M' => ["g2", "screen mid<>dle"],
+ '^m'=> \'+',
+ 'n' => ["g2", "next find"],
+ 'N' => ["g2", "prev find"],
+ '^n'=> \'j',
+ 'o' => ["g6 undo modei", "line below\nOpen"],
+ 'O' => ["g6 undo modei", "line above"],
+ '^o'=> ["g2 v6", "jump to older"],
+ 'p' => ["g4 undo", "paste after"],
+ 'P' => ["g4 undo", "paste before"],
+ '^p'=> \'k',
+ 'q' => ["g7 arg", "rec<>ord macro\nQueue seQuence"],
+ 'Q' => ["g7", "ex mode"],
+ '^q'=> ["g1", "(xon)\nQome back"], # or ^v
+ 'r' => ["g4 arg undo", "repl<>ace char"],
+ 'R' => ["g6 undo modei", "repl<>ace mode"],
+ '^r'=> ["g4 undo v6", "redo"],
+ 's' => ["g6 undo modei", "subst char"],
+ 'S' => ["g6 undo modei", "subst line"],
+ '^s'=> ["g1", "(xoff)\nStop"],
+ 't' => ["g2 arg", "till char"],
+ 'T' => ["g2 arg", "back till char"],
+ '^t'=> ["g3", "back tag"], # backtrag :P
+ 'u' => ["g4 undo", "undo"],
+ 'U' => ["g4 undo", "undo line"],
+ '^u'=> ["g3", "scroll up"],
+ 'v' => ["g8 modev", "visual mode"],
+ 'V' => ["g8 modev", "visual lines"],
+ '^v'=> ["g8 modev v6", "visual block"],
+ 'w' => ["g2", "next word"],
+ 'W' => ["g2", 'next word'],
+ '^w'=> ["g9 arg mode^w", "win<>dow cmds"],
+ 'x' => ["g4 undo", "delete char"],
+ 'X' => ["g4 undo", "back<>space"],
+ '^x'=> ["g4 undo", "subs<>tract"],
+ 'y' => ["g4 argm", "yank\n(copy)"],
+ 'Y' => ["g4", "yank line"],
+ '^y'=> ["g3", "window up\nYield"],
+ 'z' => ["g9 arg modez", "extra cmds"],
+ 'Z' => ["g9 arg modeZ", "quit"],
+ '^z'=> ["g1", ":sus<>pend\nzzz (as in sleep)"],
}, # normal mode
g => {
lead => "g",
- "\e"=> "g7 mode",
-
- '~' => "g4 argm v6",
- '@' => "g4 v7",
- '#' => "g2 v6",
- '$' => "g2",
- '^' => "g2 v6",
- '&' => "g4",
- '*' => "g2 v6",
- '_' => "g2 v6",
- '+' => "g4 v7",
- '`' => "g2 v6 arg",
- '8' => "g1",
- '0' => "g2 v6",
- '-' => "g4 v7",
- '^['=> "g7 mode",
- ']' => "g3",
- '^]'=> "g3",
- ';' => "g2",
- "'" => "g2 v6 arg",
- '<' => "g4 v7",
- '?' => "g4 argm v6",
- ',' => "g2",
-
- 'a' => "g1",
- '^a'=> "g1",
- 'c' => 'g4 argm xcommentary',
- 'd' => "g2 v6",
- 'D' => "g2 v6",
- 'e' => "g2",
- 'E' => "g2",
- 'f' => "g4 v6",
- 'F' => "g4 v7",
- 'g' => "g2",
- '^g'=> "g1 vim6",
- 'h' => "g8 modev",
- 'H' => "g8 modev",
- '^h'=> "g8 modev v6",
- 'i' => "g6 undo modei",
- 'I' => "g6 undo modei",
- 'j' => "g2 v6",
- 'J' => "g4",
- 'k' => "g2 v6",
- 'l' => 'g3 argm arg xlion',
- 'L' => 'g3 argm arg xlion',
- 'm' => "g2 v6",
- 'n' => "g8 v7 modev",
- 'N' => "g8 v7 modev",
- 'o' => "g2",
- 'p' => "g4 undo",
- 'P' => "g4",
- 'q' => "g4 argm",
- 'Q' => "g7 v6",
- 'r' => "g4 arg",
- 'R' => "g6 undo modei",
- 's' => "g1 v6",
- 't' => "g3 v7",
- 'T' => "g3 v7",
- 'u' => "g4 argm v6", # XXX undo?
- 'U' => "g4 undo argm v6",
- 'v' => 'g8 modev',
- 'V' => "g4",
- 'w' => "g4 argm v7",
- 'x' => "g4 v7 ext",
+ "\e"=> ["g7 mode", "normal mode"],
+
+ '~' => ["g4 argm v6", "case toggl<>e"],
+ '@' => ["g4 v7", "oper<>at<>or<>func"],
+ '#' => ["g2 v6", "rev. find string"],
+ '$' => ["g2", "virt<>ual eol"],
+ '^' => ["g2 v6", qq'"soft" bol v<>irt<>ual'],
+ '&' => ["g4", ":s rep<>eat glob<>al<>ly\nGlobal substitute"],
+ '*' => ["g2 v6", "find string"],
+ '_' => ["g2 v6", qq'"soft" eol'],
+ '+' => ["g4 v7", "later undo"],
+ '`' => ["g2 v6 arg", "to mark keepj<>umps"],
+ '8' => ["g1", "char hex val<>ue<>s"],
+ '0' => ["g2 v6", "virtual bol"],
+ '-' => ["g4 v7", "earlier undo"],
+ '^['=> ["g7 mode"],
+ ']' => ["g3", "go to tselect"],
+ '^]'=> ["g3", "go to tjump"],
+ ';' => ["g2", "to prev change pos"],
+ "'" => ["g2 v6 arg", "to mark keepj<>umps"],
+ '<' => ["g4 v7", "see prev cmd output"],
+ '?' => ["g4 argm v6", "rot13 encode"],
+ ',' => ["g2", "to next change pos"],
+
+ 'a' => ["g1", "char value\nGet Ascii value"],
+ '^a'=> ["g1", "mem usage stats"],
+ 'd' => ["g2 v6", "local declar<>ation"],
+ 'D' => ["g2 v6", "global declar<>ation"],
+ 'e' => ["g2", "back to word end"],
+ 'E' => ["g2", qq'back to word end'],
+ 'f' => ["g4 v6", "edit file at cur<>sor\nGoto File"],
+ 'F' => ["g4 v7", "edit file + jump"],
+ 'g' => ["g2", "first line"],
+ '^g'=> ["g1 vim6", "cur<>sor pos info"],
+ 'h' => ["g8 modev", "select mode\nGet Highlighted"],
+ 'H' => ["g8 modev", "select lines\nGet Highlighted"],
+ '^h'=> ["g8 modev v6", "select block\nGet Highlighted"],
+ 'i' => ["g6 undo modei", "insert at last pos"],
+ 'I' => ["g6 undo modei", "insert at soft bol"],
+ 'j' => ["g2 v6", " screen"],
+ 'J' => ["g4", "join leave spac<>ing"],
+ 'k' => ["g2 v6", " screen"],
+ 'm' => ["g2 v6", "cen<>ter screen"],
+ 'n' => ["g8 v7 modev", "select next find"],
+ 'N' => ["g8 v7 modev", "select prev find"],
+ 'o' => ["g2", ":goto (byte)"],
+ 'p' => ["g4 undo", "paste still"],
+ 'P' => ["g4", "paste before still"],
+ 'q' => ["g4 argm", "for<>mat"],
+ 'Q' => ["g7 v6", "ex mode manual :"],
+ 'r' => ["g4 arg", "virt. repl<>ace char"],
+ 'R' => ["g6 undo modei", "virt. repl<>ace mode"],
+ 's' => ["g1 v6", "sleep\nGo to Sleep"],
+ 't' => ["g3 v7", "next tab\nGoto Tab"],
+ 'T' => ["g3 v7", "tab back"],
+ 'u' => ["g4 argm v6", "lower<>case"], # XXX undo?
+ 'U' => ["g4 undo argm v6", "up<>per<>case"],
+ 'v' => ['g8 modev', "prev<>ious highl<>ight\nprecedinG Visual"],
+ 'V' => ["g4", "avoid resel<>ect<>ion"],
+ 'w' => ["g4 argm v7", "for<>mat still"],
+ 'x' => ["g4 v7 ext", "Netrw<>BrowseX"],
+
+ # plugins
+ 'c' => ['g4 argm xcommentary', "(un)<>com<>ment\ncommentary or tComment plugin"],
+ 'l' => ['g3 argm arg xlion', "align to left\nlion plugin, also good for easy-align"],
+ 'L' => ['g3 argm arg xlion', "align to right\nlion plugin"],
}, # mode g
Z => {
lead => "Z",
- "\e"=> "g7 mode",
- '^['=> "=\e",
+ "\e"=> ["g7 mode", "normal mode"],
+ '^['=> \"Z\e",
- 'Q' => "g4 v6",
- 'Z' => "g4",
+ 'Q' => ["g4 v6", " :q! (force)"],
+ 'Z' => ["g4", " :wq (write)"],
}, # mode Z
z => {
lead => "z",
- "\e"=> "g7 mode",
-
- '^' => "g3",
- '+' => "g3",
- '-' => "g3",
- '=' => "g4 v7",
- '.' => "g3",
- '^['=> "=\e",
-
- 'a' => "g4 v6 folding",
- 'A' => "g4 v6 folding",
- 'b' => "g3",
- 'c' => "g4 v6 folding",
- 'C' => "g4 v6 folding",
- 'd' => "g4 v6 folding",
- 'D' => "g4 v6 folding",
- 'e' => "g3",
- 'E' => "g4 v6 folding",
- 'f' => "g4 argm v6 folding",
- 'F' => "g4 v6 folding",
- 'g' => "g4 v7",
- 'G' => "g4 v7",
- 'h' => "g3",
- 'H' => "g3",
- 'i' => "g4 v6 folding",
- 'j' => "g2 v6 folding",
- 'k' => "g2 v6 folding",
- 'l' => "g3",
- 'L' => "g3",
- '^m'=> "g3",
- 'm' => "g4 v6 folding",
- 'M' => "g4 v6 folding",
- 'n' => "g4 v6 folding",
- 'N' => "g4 v6 folding",
- 'o' => "g4 v6 folding",
- 'O' => "g4 v6 folding",
- 'r' => "g4 v6 folding",
- 'R' => "g4 v6 folding",
- 's' => "g3",
- 't' => "g3",
- 'u' => "g4 arg v7",
- 'v' => "g4 v6 folding",
- 'w' => "g4 v7",
- 'W' => "g4 v7",
- 'x' => "g4 v6 folding",
- 'X' => "g4 v6 folding",
- 'z' => "g3",
+ "\e"=> ["g7 mode", "normal mode"],
+
+ '^' => ["g3", "page above"],
+ '+' => ["g3", "page below"],
+ '-' => ["g3", "line at bottom bol\ndon't (-) see any further"],
+ '=' => ["g4 v7", "sug<>gest spell<>ing"],
+ '.' => ["g3", "line at center bol"],
+ '^['=> \"z\e",
+
+ 'a' => ["g4 v6 folding", "toggle fold"],
+ 'A' => ["g4 v6 folding", "toggle fold rec<>urs<>ive<>ly"],
+ 'b' => ["g3", "line at bot. bol"],
+ 'c' => ["g4 v6 folding", "close fold"],
+ 'C' => ["g4 v6 folding", "close folds rec<>curs<>ive<>ly"],
+ 'd' => ["g4 v6 folding", "delete fold"],
+ 'D' => ["g4 v6 folding", "delete folds rec<>urs<>ive"],
+ 'e' => ["g3", "cursor at right side"],
+ 'E' => ["g4 v6 folding", "elimi<>nate f<>olds"],
+ 'f' => ["g4 argm v6 folding", "create fold"],
+ 'F' => ["g4 v6 folding", "fold lines"],
+ 'g' => ["g4 v7", "add spell<>ing\nGood word"],
+ 'G' => ["g4 v7", "temp spell<>ing"],
+ 'h' => ["g3", "scroll "],
+ 'H' => ["g3", "scroll half scr<>een"],
+ 'i' => ["g4 v6 folding", "toggle all folds"],
+ 'j' => ["g2 v6 folding", "next fold start"],
+ 'k' => ["g2 v6 folding", "prev fold end"],
+ 'l' => ["g3", "scroll "],
+ 'L' => ["g3", "scroll half scr<>een"],
+ '^m'=> ["g3", "line at top bol"],
+ 'm' => ["g4 v6 folding", "fold more"],
+ 'M' => ["g4 v6 folding", "close all folds"],
+ 'n' => ["g4 v6 folding", "fold none"],
+ 'N' => ["g4 v6 folding", "fold norm<>al"],
+ 'o' => ["g4 v6 folding", "open fold"],
+ 'O' => ["g4 v6 folding", "open folds rec<>urs<>ive<>ly"],
+ 'r' => ["g4 v6 folding", "reduce folding"],
+ 'R' => ["g4 v6 folding", "open all folds"],
+ 's' => ["g3", "cursor at left side"],
+ 't' => ["g3", "line at top"],
+ 'u' => ["g4 arg v7", "undo spell<>ing"],
+ 'v' => ["g4 v6 folding", "unfold cursor line"],
+ 'w' => ["g4 v7", "add missp<>ell<>ing\nWrong word"],
+ 'W' => ["g4 v7", "temp missp<>ell<>ing"],
+ 'x' => ["g4 v6 folding", "update folds"],
+ 'X' => ["g4 v6 folding", "re<>apply f<>olds"],
+ 'z' => ["g3", "line at center\nZee Zenter (with a funny accent)"],
}, # mode z
'[' => {
lead => "[",
- "\e"=> "g7 mode",
-
- "`" => "g2 v6",
- '#' => "g2",
- '(' => "g2",
- '*' => "=[/",
- '/' => "g2",
- "'" => "=0[`^ g2 v6",
- '{' => "g2",
- '[' => "g2",
- '^['=> "=\e",
- ']' => "g2",
-
- 'c' => "g2",
- 'd' => "g1",
- 'D' => "g4",
- '^d'=> "g3",
- 'f' => "=gf", # deprecated
- 'i' => 'g1',
- 'I' => 'g4',
- '^i'=> 'g3',
- 'm' => "g2",
- 'p' => "g4",
- 'P' => "=[p",
- 's' => "g3 v7",
- 'S' => "g3 v7",
- 'z' => "g2 v6 folding",
-
- 'a' => "g3 xunimpaired",
- 'A' => "g3 xunimpaired",
- 'b' => "g3 xunimpaired",
- 'B' => "g3 xunimpaired",
- 'e' => "g4 xunimpaired",
- 'l' => "g3 xunimpaired",
- 'L' => "g3 xunimpaired",
- '^l'=> "g3 xunimpaired",
- '^l'=> "g3 xunimpaired",
- 'f' => "g3 xunimpaired", # overrides native alias
- 'n' => "g3 xunimpaired",
- 'o' => "g9 arg xunimpaired",
- 'q' => "g3 xunimpaired",
- 'Q' => "g3 xunimpaired",
- '^q'=> "g3 xunimpaired",
- 't' => "g3 xunimpaired",
- 'T' => "g3 xunimpaired",
- 'u' => "g4 argm xunimpaired",
- 'x' => "g4 argm xunimpaired",
- 'y' => "g4 argm xunimpaired",
- ' ' => "g4 xunimpaired",
+ "\e"=> ["g7 mode", "normal mode"],
+
+ '`' => ["g2 v6", "previous lc mark"],
+ '#' => ["g2", "previous open #if<>/#else"],
+ '(' => ["g2", "previous open ("],
+ '*' => \'[/',
+ '/' => ["g2", "start of C com<>m<>ent"],
+ "'" => ["g2 v6", \"0[`^"],
+ '{' => ["g2", => "previous open {"],
+ '[' => ["g2", "section back<>ward<>s"],
+ '^['=> \"[\e",
+ ']' => ["g2", qq'section back<>ward<>s'],
+
+ 'c' => ["g2", "start of change backw<>ards"],
+ 'd' => ["g1", "define line"],
+ 'D' => ["g4", "defin<>ition"],
+ '^d'=> ["g3", "to defin<>it<>ion"],
+ 'i' => ['g1', "first occur<>renc<>e line"],
+ 'I' => ['g4', "first occur<>renc<>e"],
+ '^i'=> ['g3', "to first occur<>renc<>e"],
+ 'm' => ["g2", "start of funct<>ion"],
+ 'p' => ["g4", "P reind<>ent<>ed"],
+ 'P' => \"[p",
+ 's' => ["g3 v7", "last missp<>ell<>ing"],
+ 'S' => ["g3 v7", "last bad word"],
+ 'z' => ["g2 v6 folding", "start of open fold"],
+
+ # unimpaired
+ 'a' => ["g3 xunimpaired", "prev<>ious file\nunimpaired map for :prev"],
+ 'A' => ["g3 xunimpaired", "first file\nunimpaired map for :rew"],
+ 'b' => ["g3 xunimpaired", "prev<>ious buffer\nunimpaired map for :bp"],
+ 'B' => ["g3 xunimpaired", "first buffer\nunimpaired map for :br"],
+ 'e' => ["g4 xunimpaired", "exchange line above\nunimpaired plugin"],
+ 'f' => \'gf', # deprecated
+ 'f' => ["g3 xunimpaired", "preced<>ing file alph<>abet<>ic<>al<>ly\nunimpaired plugin"], # overrides native alias
+ 'l' => ["g3 xunimpaired", "previous loc<>at<>ion\nunimpaired map for :lp"],
+ 'L' => ["g3 xunimpaired", "first loc<>ation\nunimpaired map for :lr"],
+ '^l'=> ["g3 xunimpaired", "next file in loc<>at<>ions\nunimpaired map for :lpf"],
+ 'n' => ["g3 xunimpaired", "previous conflict<>/hunk\nunimpaired plugin"],
+ 'o' => ["g9 arg xunimpaired", "enable option\nunimpaired plugin"],
+ #'p' => ["g4 xunimpaired", "linewise paste before"],
+ 'q' => ["g3 xunimpaired", "previous quickfix\nunimpaired map for :cp"],
+ 'Q' => ["g3 xunimpaired", "first quickfix\nunimpaired map for :cr"],
+ '^q'=> ["g3 xunimpaired", "quickfix file b<>ack\nunimpaired map for :cpf"],
+ 't' => ["g3 xunimpaired", "previous tag\nunimpaired map for :tp"],
+ 'T' => ["g3 xunimpaired", "first tag\nunimpaired map for :tr"],
+ 'u' => ["g4 argm xunimpaired", "url encode\nunimpaired plugin"],
+ 'x' => ["g4 argm xunimpaired", "xml encode\nunimpaired plugin"],
+ 'y' => ["g4 argm xunimpaired", "escape c str<>ing\nunimpaired plugin"],
+ ' ' => ["g4 xunimpaired", 'prepend blank l<>in<>e<>s'],
}, # mode [
']' => {
lead => "]",
- "\e"=> "g7 mode",
-
- "`" => "g2 v6",
- '#' => "g2",
- ')' => "g2",
- '*' => "=]/",
- "'" => '=$]`^ g2 v6',
- '/' => "g2",
- '[' => "g2",
- '^['=> "=\e",
- ']' => "g2",
- '}' => "g2",
-
- 'c' => "g2",
- 'd' => "g1",
- 'D' => "g4",
- '^d'=> "g3",
- 'f' => "=gf", # deprecated
- 'i' => "g1",
- 'I' => "g4",
- '^i'=> "g3",
- 'm' => "g2",
- 'p' => "g4",
- 'P' => "=[p",
- 's' => "g3 v7",
- 'S' => "g3 v7",
- 'z' => "g2 v6 folding",
-
- 'a' => "g3 xunimpaired",
- 'A' => "g3 xunimpaired",
- 'b' => "g3 xunimpaired",
- 'B' => "g3 xunimpaired",
- 'e' => "g4 xunimpaired",
- 'l' => "g3 xunimpaired",
- 'L' => "g3 xunimpaired",
- '^l'=> "g3 xunimpaired",
- '^l'=> "g3 xunimpaired",
- 'f' => "g3 xunimpaired", # overrides native alias
- 'n' => "g3 xunimpaired",
- 'o' => "g9 arg xunimpaired",
- 'q' => "g3 xunimpaired",
- 'Q' => "g3 xunimpaired",
- '^q'=> "g3 xunimpaired",
- 't' => "g3 xunimpaired",
- 'T' => "g3 xunimpaired",
- 'u' => "g4 argm xunimpaired",
- 'x' => "g4 argm xunimpaired",
- 'y' => "g4 argm xunimpaired",
- ' ' => "g4 xunimpaired",
+ "\e"=> ["g7 mode", "normal mode"],
+
+ '`' => ["g2 v6", "next lc mark"],
+ '#' => ["g2", "next open #endif<>/#else"],
+ ')' => ["g2", "next open )"],
+ '*' => \']/',
+ "'" => ["g2 v6", \'$]`^'],
+ '/' => ["g2", "end of C com<>m<>ent"],
+ '[' => ["g2", qq'section forw<>ard'],
+ '^['=> \"]\e",
+ ']' => ["g2", "section forw<>ard"],
+ '}' => ["g2", "next open }"],
+
+ 'c' => ["g2", "start of change forw<>ards"],
+ 'd' => ["g1", "next define line"],
+ 'D' => ["g4", "next define"],
+ '^d'=> ["g3", "to next define"],
+ 'f' => \'gf', # deprecated
+ 'i' => ["g1", "next occur<>renc<>e line"],
+ 'I' => ["g4", "next occur<>renc<>e"],
+ '^i'=> ["g3", "to occur<>renc<>e"],
+ 'm' => ["g2", "end of funct<>ion"],
+ 'p' => ["g4", "p reind<>ent<>ed"],
+ 'P' => \'[p',
+ 's' => ["g3 v7", "next missp<>ell<>ing"],
+ 'S' => ["g3 v7", "next bad word"],
+ 'z' => ["g2 v6 folding", "end of open fold"],
+
+ # unimpaired
+ 'a' => ["g3 xunimpaired", "next file\nunimpaired map for :n"],
+ 'A' => ["g3 xunimpaired", "last file\nunimpaired map for :la"],
+ 'b' => ["g3 xunimpaired", "next buffer\nunimpaired map for :bn"],
+ 'B' => ["g3 xunimpaired", "last buffer\nunimpaired map for :bl"],
+ 'e' => ["g4 xunimpaired", "exchange line belo<>w\nunimpaired plugin"],
+ 'f' => ["g3 xunimpaired", "next file alph<>abet<>ic<>al<>ly\nunimpaired plugin"], # overrides native alias
+ 'l' => ["g3 xunimpaired", "next loc<>ation\nunimpaired map for :lne"],
+ 'L' => ["g3 xunimpaired", "last loc<>ation\nunimpaired map for :lla"],
+ '^l'=> ["g3 xunimpaired", "file back in loc<>at<>ions\nunimpaired map for :lnf"],
+ 'n' => ["g3 xunimpaired", "next confl<>ict<>/hunk\nunimpaired plugin"],
+ 'o' => ["g9 arg xunimpaired", "disable option\nunimpaired plugin"],
+ 'q' => ["g3 xunimpaired", "next quickfix error\nunimpaired map for :cn"],
+ 'Q' => ["g3 xunimpaired", "last quickfix error\nunimpaired map for :cla"],
+ '^q'=> ["g3 xunimpaired", "next file in q<>uick<>f<>ix\nunimpaired map for :cnf"],
+ 't' => ["g3 xunimpaired", "next tag\nunimpaired map for :tn"],
+ 'T' => ["g3 xunimpaired", "last tag\nunimpaired map for :tl"],
+ 'u' => ["g4 argm xunimpaired", "url decode\nunimpaired plugin"],
+ 'x' => ["g4 argm xunimpaired", "xml decode\nunimpaired plugin"],
+ 'y' => ["g4 argm xunimpaired", "unescap<>e c str<>ing\nunimpaired plugin"],
+ ' ' => ["g4 xunimpaired", 'add blank l<>in<>e<>s bel<>ow'],
}, # mode ]
'^w' => {
lead => "ŵ",
- "\e"=> "g7 mode",
-
- '<' => "g3",
- '>' => "g3",
- '^' => "g4",
- '_' => "g3",
- '+' => "g3",
- '-' => "g3",
- '=' => "g3",
- '^['=> "=\e",
- ']' => "g3",
- '}' => "g3",
- '|' => "g3",
-
- 'b' => "g3",
- 'c' => "g3",
- '^c'=> "g7 mode",
- 'd' => "g3",
- 'f' => "g4",
- 'F' => "g4 v7",
- 'g' => "g9 arg mode^wg",
- 'h' => "g3",
- 'H' => "g3",
- 'i' => "g3",
- 'j' => "g3",
- 'J' => "g3",
- 'k' => "g3",
- 'K' => "g3",
- 'l' => "g3",
- 'L' => "g3",
- 'n' => "g4",
- 'o' => "g3",
- 'p' => "g3",
- 'P' => "g3",
- 'q' => "g4",
- 'r' => "g3",
- 'R' => "g3",
- 's' => "g3",
- 'S' => "=^ws",
- 't' => "g3",
- 'T' => "g3 v7",
- 'v' => "g3",
- 'w' => "g3",
- 'W' => "g3",
- 'x' => "g3",
- 'z' => "g3",
+ "\e"=> ["g7 mode", "normal mode"],
+
+ '<' => ["g3", => "width decr<>ease"],
+ '>' => ["g3", => "width incr<>ease"],
+ '^' => ["g4", => "split, edit alt file"],
+ '_' => ["g3", => "set height"],
+ '+' => ["g3", => "height incr<>ease"],
+ '-' => ["g3", => "height decr<>ease"],
+ '=' => ["g3", => "same height"],
+ '^['=> \"^w\e",
+ ']' => ["g3", => "split, to tag"],
+ '}' => ["g3", => "pre<>view tag"],
+ '|' => ["g3", => "set width"],
+
+ 'b' => ["g3", => "go to bot<>tom"],
+ 'c' => ["g3", => ":close"],
+ '^c'=> ["g7 mode", "abort"],
+ 'd' => ["g3", => "split, to def<>inition"],
+ 'f' => ["g4", => "split, file edit"],
+ 'F' => ["g4 v7", => "^wf, jump to line"],
+ 'g' => ["g9 arg mode^wg", => "extra cmds"],
+ 'h' => ["g3", => "go left"],
+ 'H' => ["g3", => "move far left"],
+ 'i' => ["g3", => "split, to decl of id<>ent<>ifier"],
+ 'j' => ["g3", => "go down"],
+ 'J' => ["g3", => "move to bottom"],
+ 'k' => ["g3", => "go up"],
+ 'K' => ["g3", => "move to top"],
+ 'l' => ["g3", => "go right"],
+ 'L' => ["g3", => "move far right"],
+ 'n' => ["g4", => "open new"],
+ 'o' => ["g3", => ":only current"],
+ 'p' => ["g3", => "go to prev<>ious"],
+ 'P' => ["g3", => "go to pre<>view"],
+ 'q' => ["g4", => ":quit current"],
+ 'r' => ["g3", => "rotate down<>ward<>s"],
+ 'R' => ["g3", => "rotate up<>ward<>s"],
+ 's' => ["g3", => "split horiz<>ont<>al<>ly"],
+ 'S' => \'^ws',
+ 't' => ["g3", => "go to top"],
+ 'T' => ["g3 v7", => "to tab"],
+ 'v' => ["g3", => "split vert<>ic<>al<>ly"],
+ 'w' => ["g3", => "go to next\nWrap around"],
+ 'W' => ["g3", => "go above<>/left"],
+ 'x' => ["g3", => "ex<>chan<>ge"],
+ 'z' => ["g3", => "close pre<>view"],
}, # mode ^w
'^wg' => {
lead => "ŵg",
- "\e"=> "g7 mode",
- '^['=> "=\e",
- ']' => "g3",
- '}' => "g3",
- '^]'=> "g3",
- 'f' => "g4 v7",
- 'F' => "g4 v7",
+ "\e"=> ["g7 mode", "normal mode"],
+ '^['=> \"^wg\e",
+ ']' => ["g3", => "split, :ts<>elect"],
+ '}' => ["g3", => ":ptj<>ump to tag"],
+ '^]'=> ["g3", "split, :tj<>ump"],
+ 'f' => ["g4 v7", => "file in tab"],
+ 'F' => ["g4 v7", => "^wgf, to line<>nr"],
}, # mode ^w g
v => {
- "\e"=> "g7 mode",
-
- '!' => "g4",
- ':' => "g7 modec",
- '<' => "g4",
- '=' => 'g4 undo',
- '>' => 'g4',
- '~' => "g4 v6",
- '^['=> "=\e",
- '^]'=> "g3",
- '^\\'=>'^\\',
-
- 'a' => 'g9 modeva arg v6',
- 'A' => 'g6 modei v6',
- '^a'=> 'g4 undo v8',
- 'c' => 'g6 modei v6',
- 'C' => 'g6 modei v6',
- '^c'=> "g7 mode",
- 'd' => "g4 v6",
- 'D' => "g4 v6",
- 'g' => "g9 arg modevg",
- '^g'=> "g8",
- 'i' => "g9 modeva arg v6",
- 'I' => "g6 modei v6", # block
- 'J' => "g4",
- 'K' => 'g4',
- 'o' => "g2",
- 'O' => "g2",
- '^o'=> "g8",
- 'p' => 'g4',
- 'P' => 'g4',
- 'r' => 'g4 arg',
- 'R' => "=vS", # "might change in future"
- 's' => "=vc",
- 'S' => 'g6 modei v6',
- 'u' => "g4 v6",
- 'U' => "g4 v6",
- 'v' => "g8",
- 'V' => "g8",
- '^v'=> "g8 v6",
- 'x' => "=vd",
- 'X' => "=vD",
- '^x'=> 'g4 undo v8',
- 'y' => "g4",
- 'Y' => "g4",
-
- (map { $_ => "=$_" } @motions, qw(
+ "\e"=> ["g7 mode", "normal mode"],
+
+ '!' => ["g4", "external filter"],
+ ':' => ["g7 modec", "cmd on range"],
+ '<' => ["g4", "un<>indent"],
+ '=' => ['g4 undo', "re<>ind<>ent"],
+ '>' => ['g4', "ind<>ent"],
+ '~' => ["g4 v6", "toggle case"],
+ '^['=> \"v\e",
+ '^]'=> ["g3", "jump to tag"],
+ '^\\'=>\'^\\',
+
+ 'a' => ['g9 modeva arg v6', "ex<>tend area"],
+ 'A' => ['g6 modei v6', "ap<>pend to block"], # block
+ '^a'=> ['g4 undo v8', "incr<>ement num<>bers"],
+ 'c' => ['g6 modei v6', "repl<>ace area"],
+ 'C' => ['g6 modei v6', "repl<>ace full lines"], # like vS, but blocks are extended until eol
+ '^c'=> ["g7 mode", "abort"],
+ 'd' => ["g4 v6", "delete area"],
+ 'D' => ["g4 v6", "delete lines"],
+ 'g' => ["g9 arg modevg", "extra cmds"],
+ '^g'=> ["g8", "select mode"],
+ 'i' => ["g9 modeva arg v6", "extend inner a<>r<>ea"],
+ 'I' => ["g6 modei v6", "insert to block"], # block
+ 'J' => ["g4", "join lines"],
+ 'K' => ['g4', "help sel<>ect<>ion"],
+ 'o' => ["g2", "to other corner"],
+ 'O' => ["g2", "to other side"],
+ '^o'=> ["g8", "visual once"], # select
+ 'p' => ['g4', "repl<>ace w/ paste"],
+ 'P' => ['g4', "repl<>ace w/ paste"],
+ 'r' => ['g4 arg', "fill up w/ ch<>ar"],
+ 'R' => \'vS', # "might change in future"
+ 's' => \'vc',
+ 'S' => ['g6 modei v6', "repl<>ace lines"],
+ 'u' => ["g4 v6", "lower<>case"],
+ 'U' => ["g4 v6", "upper<>case"],
+ 'v' => ["g8", "char<>wise"],
+ 'V' => ["g8", "line<>wise"],
+ '^v'=> ["g8 v6", "block<>wise"],
+ 'x' => \'vd',
+ 'X' => \'vD',
+ '^x'=> ['g4 undo v8', "decr<>ement num<>bers"],
+ 'y' => ["g4", "yank area"],
+ 'Y' => ["g4", "yank lines"],
+
+ (map { $_ => \$_ } @motions, qw(
^b ^d ^e ^f ^i m q ^q ^s ^u ^w ^y z ^z "
- )), # a lot like normal mode
+ )), # a lot like normal mode TODO
}, # mode v
- vg => {
+ 'vg' => {
lead => "g",
- "\e"=> "g8 modev",
-
- '^['=> "=\e",
- '?' => "g4 v6",
- '^a'=> 'g4 undo v8',
- '^g' => "g1 vim6",
- 'c' => 'g4 xcommentary',
- 'J' => 'g4 v6',
- 'l' => 'g3 arg xlion',
- 'L' => 'g3 arg xlion',
- 'q' => "g4 v6",
- 'v' => "=gv",
- 'w' => 'g4 v7',
- '^x'=> 'g4 undo v8',
+ "\e"=> ["g8 modev", "visual mode"],
+
+ '^['=> \"vg\e",
+ '?' => ["g4 v6", => "rot13 encode"],
+ '^a'=> ['g4 undo v8', "seq. incr<>ement"],
+ '^g' => ["g1 vim6", "count region info"],
+ 'J' => ['g4 v6', => "join literal<>ly"],
+ 'q' => ["g4 v6", => "for<>mat"],
+ 'v' => \'gv',
+ 'w' => ['g4 v7', => "for<>mat still"],
+ '^x'=> ['g4 undo v8', "seq. decr<>ement"],
+
+ # plugins
+ 'c' => ['g4 xcommentary', => "(un)<>com<>ment\ncommentary or tComment plugin"],
+ 'l' => ['g3 arg xlion', => "align to left\nlion plugin, also good for easy-align"],
+ 'L' => ['g3 arg xlion', => "align to right\nlion plugin"],
}, # mode v g
va => {
- "\e"=> "g8 modev",
-
- '(' => "=vab",
- ')' => "=vab",
- '`' => "=va'",
- "'" => 'g2 v7',
- '"' => "=va'",
- '<' => 'g2 v6',
- '>' => "=va<",
- '[' => 'g2 v6',
- '{' => "=vaB",
- '^['=> "=\e",
- ']' => "=va[",
- '}' => "=vaB",
-
- 'b' => 'g2 v6',
- 'B' => 'g2 v6',
- 'p' => 'g2 v6',
- 's' => 'g2 v6',
- 't' => 'g2 v7',
- 'w' => 'g2 v6',
- 'W' => 'g2 v6',
+ "\e"=> ["g8 modev", "visual mode"],
+
+ '(' => \'vab',
+ ')' => \'vab',
+ '`' => \"va'",
+ "'" => ['g2 v7', "quoted string"],
+ '"' => \"va'",
+ '<' => ['g2 v6', => "<> block"],
+ '>' => \'va<',
+ '[' => ['g2 v6', => "[] block"],
+ '{' => \'vaB',
+ '^['=> \"va\e",
+ ']' => \'va[',
+ '}' => \'vaB',
+
+ 'b' => ['g2 v6', => "() block"],
+ 'B' => ['g2 v6', => "{} Block"],
+ 'p' => ['g2 v6', => "para<>graph"],
+ 's' => ['g2 v6', => "senten<>ce"],
+ 't' => ['g2 v7', => "xml tag block"],
+ 'w' => ['g2 v6', => "word"],
+ 'W' => ['g2 v6', => 'word'],
}, # mode v a
#c => {
# desc => "command-line mode",
#
- # '^_' => "=i^_",
- # '^^' => "=i^^",
+ # '^_' => \"i^_",
+ # '^^' => \"i^^",
# '^\\'=>'^\\',
- # '^a' => "", #todo
- # '^b' => "g3",
- # '^c' => "=i^c",
- # '^d' => "", #todo
- # '^e' => "g3",
- # '^h' => "=i^h",
- # '^j' => "g4",
- # '^k' => "=i^k",
- # '^l' => "", #todo
- # '^n' => "", #todo
- # '^p' => "", #todo
- # '^r' => "=i^r", # and then some...
- # ## ["g4 arg v6"],
- # '^q' => "=^q",
- # '^u' => "=i^u",
- # '^v' => "=i^v",
- # '^w' => "=i^w",
- # '^y' => "g4",
+ # '^a' => ["", "complete"], #todo
+ # '^b' => ["g3", "bol"],
+ # '^c' => \"i^c",
+ # '^d' => ["", "complete"], #todo
+ # '^e' => ["g3", "eol"],
+ # '^h' => \"i^h",
+ # '^j' => ["g4", "execute cmd"],
+ # '^k' => \"i^k",
+ # '^l' => ["", "complete"], #todo
+ # '^n' => ["", "complete"], #todo
+ # '^p' => ["", "complete"], #todo
+ # '^r' => \'i^r', # and then some...
+ # ## ["g4 arg v6", "insert register"],
+ # '^q' => \"^q",
+ # '^u' => \"i^u",
+ # '^v' => \"i^v",
+ # '^w' => \"i^w",
+ # '^y' => ["g4", "selec<>tion to clip<>b<>oard"],
#}, # mode c
i => {
- "\e" => "g7 mode",
-
- '^@' => "g4",
- '^^' => "g4 v6",
- '^['=> "=\e",
- '^]' => "g4 v6",
- '^_' => "g4 v6",
- '^\\'=>'^\\',
-
- '^a' => "g4 v6",
- '^b' => "no v6",
- '^c' => "g7 mode",
- '^d' => 'g4',
- '^e' => "g4 v6",
- '^f' => 'g4',
- '^g' => "g9 modei^g arg",
- '^h' => "g4",
- '^i' => "g4",
- '^j' => "g4",
- '^k' => 'g4 arg arg v6 linkdigraphs',
- '^l' => "g7 mode v6", # insertmode only
- '^m' => "g4",
- '^n' => "g2 v6",
- '^o' => 'g4',
- '^p' => "g2 v6",
- '^q' => "=^q", # or i^v
- '^r' => 'g4 arg v6',
- '^s' => "=^s",
- '^t' => "g4",
- '^u' => "g4",
- '^v' => 'g4 linkcharset',
- '^w' => "g4",
- '^x' => 'g9 arg modei^x v6',
- '^y' => "g4 v6",
- '^z' => "g1 v6", # insertmode only
+ "\e" => ["g7 mode", "normal mode"],
+
+ '^@' => ["g4", => "last insert"],
+ '^^' => ["g4 v6", => "toggle :lmap usag<>e"],
+ '^[' => \"i\e",
+ '^]' => ["g4 v6", => "abbrev<>iate"],
+ '^_' => ["g4 v6", => "toggle lang<>uage"],
+ '^\\'=>\'^\\',
+
+ '^a' => ["g4 v6", => "insert prev<>ious"],
+ '^b' => ["no v6", => "former i^_"],
+ '^c' => ["g7 mode", => "abort, no abbr"],
+ '^d' => ['g4', => "un<>ind<>ent"],
+ '^e' => ["g4 v6", => "ins char below"],
+ '^f' => ['g4', => "set indent<>ation"],
+ '^g' => ["g9 modei^g arg", => "extra cmds"],
+ '^h' => ["g4", => "back<>space"],
+ '^i' => ["g4", => "tab"],
+ '^j' => ["g4", => "enter"],
+ '^k' => ['g4 arg arg v6 linkdigraphs', => "di<>graph\nKey code"],
+ '^l' => ["g7 mode v6", => "im leave ins mode"], # insertmode only
+ '^m' => ["g4", => "enter"],
+ '^n' => ["g2 v6", => "find next keyword"],
+ '^o' => ['g4', => "exec<>ute cmd"],
+ '^p' => ["g2 v6", => "find prev keyword"],
+ '^q' => \'^q', # or i^v
+ '^r' => ['g4 arg v6', "insert reg<>ister"],
+ '^s' => \'^s',
+ '^t' => ["g4", => "indent"],
+ '^u' => ["g4", => "delete line"],
+ '^v' => ['g4 linkcharset', => "literal or ch<>ar<>cod<>e\nVerbatim or by Value"],
+ '^w' => ["g4", => "delete word back"],
+ '^x' => ['g9 arg modei^x v6', => "ex<>pand mode"],
+ '^y' => ["g4 v6", => "ins char above"],
+ '^z' => ["g1 v6", => ":sus<>pend in im"], # insertmode only
}, # modei
'i^g' => {
lead => "Ä",
- "\e"=> 'g6 modei',
+ "\e"=> ['g6 modei', "insert mode"],
- 'k' => 'g2',
- 'j' => 'g2',
- 's' => 'g4 arg xsurround',
- 'u' => 'g4',
- 'U' => 'g4 v8',
+ 'k' => ['g2', => " start col<>umn"],
+ 'j' => ['g2', => " start col<>umn"],
+ 'u' => ['g4', => "break undo seq<>uence"],
+ 'U' => ['g4 v8', => "keep undo seq<>uence"],
# other keys (even esc) are not recognized
+
+ 's' => ['g4 arg xsurround', => "sur<>round\nsurround plugin"],
}, # mode i ^g
'i^x' => {
lead => "xÌ",
- "\e" => "g7 mode", # yes, it really leaves insert mode
-
- '^['=> "=\e",
- '^]' => 'g4',
- '^d' => 'g4',
- '^e' => "g3",
- '^f' => 'g4',
- '^i' => 'g4',
- '^k' => 'g4',
- '^l' => 'g4',
- '^n' => 'g4',
- '^o' => 'g4 v7',
- '^p' => 'g4',
- '^s' => 'g4',
- 's' => "=i^x^s",
- '^t' => 'g4',
- '^u' => 'g4 v7',
- '^v' => 'g4',
- '^y' => "g3",
+ "\e" => ["g7 mode", "normal mode"], # yes, it really leaves insert mode
+
+ '^['=> \"i^x\e",
+ '^]' => ['g4', => "tag comp<>l<>et<>e"],
+ '^d' => ['g4', => "def<>ine compl<>et<>e"],
+ '^e' => ["g3", => "window up"],
+ '^f' => ['g4', => "file comp<>l<>et<>e"],
+ '^i' => ['g4', => "ident comp<>l<>et<>e"],
+ '^k' => ['g4', => "dict comp<>l<>et<>e"],
+ '^l' => ['g4', => "line comp<>l<>et<>e"],
+ '^n' => ['g4', => "next comp<>l<>et<>e"],
+ '^o' => ['g4 v7', => "omni comp<>l<>et<>e"],
+ '^p' => ['g4', => "prev comp<>l<>ete"],
+ '^s' => ['g4', => "spell sugg<>est"],
+ 's' => \'i^x^s',
+ '^t' => ['g4', => "thes<>aur<>us compl<>et<>e"],
+ '^u' => ['g4 v7', => "cus<>tom comp<>l<>et<>e"],
+ '^v' => ['g4', => "ex cmd compl<>et<>e"],
+ '^y' => ["g3", => "window down"],
}, # mode i ^x
d => {
lead => "d",
- "\e"=> "g7 mode",
- '^['=> "=\e",
-
- (map { $_ => 'g4' } @motions),
- (map { $_ => 'g4 arg' } qw( f F t T ` ' / ? )), # @motions with option
- (map { $_ => "=v$_" } qw( a i )), # motions from virtual
- (map { $_ => "=$_" } qw( g z [ ] \\ ^\\ ^q ^s ^z )),
-
- 'd' => 'g4',
- 'o' => 'g5',
- 'p' => 'g5',
- 's' => 'g4 arg xsurround',
-
- 'l' => '=x',
- 'h' => '=X',
- '^h' => '=X',
- '^j' => '=dj',
- '^m' => '=dj',
- '^n' => '=dj',
- '+' => '=dj',
- '^p' => '=dk',
- '-' => '=dk',
- '$' => '=D',
- '_' => '=dd',
+ "\e"=> ["g7 mode", "normal mode"],
+ '^['=> \"d\e",
+
+ 'd' => ['g4', 'delete line'],
+ 'o' => ['g5', 'diff obtain'],
+ 'p' => ['g5', 'diff put'],
+ 's' => ['g4 arg xsurround', 'delete surr<>oun<>d<>ing'],
+
+ (map { ($_ => [\$_, "delete to $_"]) } qw( g z [ ] )), # modes
+
+ # commands
+ (map { $_ => \$_ } qw( \\ ^\\ ^q ^s ^z )),
+ 'l' => \'x',
+ 'h' => \'X',
+ '^h' => \'X',
+ '^j' => \'dj',
+ '^m' => \'dj',
+ '^n' => \'dj',
+ '+' => \'dj',
+ '^p' => \'dk',
+ '-' => \'dk',
+ '$' => \'D',
+ '_' => \'dd',
+
+ # simple @motions
+ 'W' => ['g4', 'delete word'],
+ 'b' => ['g4', 'delete word'],
+ 'B' => ['g4', 'delete word'],
+ 'e' => ['g4', 'delete word e<>nd'],
+ 'E' => ['g4', 'delete word e<>nd'],
+ 'G' => ['g4', 'delete to line<>/eof'],
+ 'H' => ['g4', 'delete to top'],
+ 'j' => ['g4', 'delete line'],
+ 'k' => ['g4', 'delete line'],
+ 'L' => ['g4', 'delete to bottom'],
+ 'M' => ['g4', 'delete to middle'],
+ 'n' => ['g4', 'delete to next res<>ult'],
+ 'N' => ['g4', 'delete to prev res<>ult'],
+ 'w' => ['g4', 'delete word'],
+ ',' => ['g4', 'delete to prev ch<>ar<>acter'],
+ ';' => ['g4', 'delete to next ch<>ar<>acter'],
+ '*' => ['g4', 'delete to find'],
+ '#' => ['g4', 'delete to find'],
+ '%' => ['g4', 'delete to line pct'],
+ '^' => ['g4', 'delete to soft bol'],
+ '0' => ['g4', 'delete to bol'],
+ '|' => ['g4', 'delete to col<>umn'],
+ '{' => ['g4', 'delete par<>agr<>aph'],
+ '}' => ['g4', 'delete rest of p<>ar<>agr<>aph'],
+ '(' => ['g4', 'delete senten<>ce'],
+ ')' => ['g4', 'delete rest of s<>en<>ten<>ce'],
+
+ # @motions with option
+ 'f' => ['g4 arg', 'delete to char<>acter'],
+ 'F' => ['g4 arg', 'delete to char<>acter'],
+ 't' => ['g4 arg', 'delete upto ch<>ar<>acter'],
+ 'T' => ['g4 arg', 'delete upto ch<>ar<>acter'],
+ '`' => ['g4 arg', 'delete to mark'],
+ "'" => ['g4 arg', 'delete lines to m<>ark'],
+ '/' => ['g4 arg', 'delete to res<>ult'],
+ '?' => ['g4 arg', 'delete to res<>ult'],
+
+ # motions from virtual
+ 'a' => ['g9 modeva arg v6 alias', 'delete area'], # va
+ 'i' => ['g9 modeva arg v6 alias', 'delete inner'], # vi
}, # mode d
+ # y => { 'o' => ['g9 arg xunimpaired', "toggle option\nunimpaired plugin"] }, # TODO
+
# TODO: mode/ (command-line)
# XXX ex mode if you want to go completely wild
},