X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/2e8c1e3cc39cc1c6e4b858242d2a3a39481b9640..v1.18-21-gc4ca0bd3e9:/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 },