5 b B e E f F G ^h h H j ^j k l L M ^m n N ^n ^p t T w W
6 0 ` ' # $ % ^ * ( ) { } ; / ? + - _ | ,
13 "Interactive cheat sheet for vi text editors, notably Vim,",
14 "describing each key in various modes.",
16 keywords => [qw' vi vim nvi '],
22 '!' => "filt<>er lines",
24 '#' => "rev. find word",
30 '(' => "begin senten<>ce",
31 ')' => "end senten<>ce",
32 '_' => '"soft" bol down',
36 '^^'=> "edit alt. file",
38 '=' => "re<>ind<>ent",
40 ';' => "repeat t/f/T/F",
42 "'" => "goto mark bol",
43 '"' => "use reg<>ister",
45 '^\\' => "to mode/<>ext<>ens<>ion<>s",
46 ',' => "reverse t/T/f/F",
47 '<' => "un<>ind<>ent",
48 '.' => "repeat last cmd",
51 '[' => "move back<>ward<>s",
52 '{' => "begin parag.",
53 ']' => "move forw<>ard",
56 '|' => "goto (1st) col",
59 'A' => "app<>end to eol",
60 '^a'=> "incr<>ement\nAdd one",
61 'b' => "prev word\nBack",
62 'B' => 'prev <span style="font-variant:small-caps">word</span>',
65 'C' => "chan<>ge to eol",
68 'D' => "delete to eol",
71 'E' => 'end <span style="font-variant:small-caps">word</span>',
72 '^e'=> "window down\nExtra line",
74 'F' => "back<>wd to char",
75 '^f'=> "page down\npage Forward",
77 'G' => "eof/<>goto ln",
78 '^g'=> ":file (info)",
80 'H' => "screen top\nHome row",
82 'I' => "insert at bol",
83 '^i'=> "jump to newer\nIncrease position",
87 'K' => "help\nlooKup Keyword",
89 'L' => "screen bottom\nLowermost Line",
92 'M' => "screen mid<>dle",
95 'o' => "line below\nOpen",
97 '^o'=> "jump to older",
99 'P' => "paste before",
100 'q' => "rec<>ord macro\nQueue seQuence",
102 '^q'=> "(xon)\nQome back",
103 'r' => "repl<>ace char",
104 'R' => "repl<>ace mode",
108 '^s'=> "(xoff)\nStop",
110 'T' => "back till char",
111 '^t'=> "back tag", # backtrag :P
115 'v' => "visual mode",
116 'V' => "visual lines",
117 '^v'=> "visual block",
119 'W' => 'next <span style="font-variant:small-caps">word</span>',
120 '^w'=> "win<>dow cmds",
121 'x' => "delete char",
122 'X' => "back<>space",
123 '^x'=> "subs<>tract",
124 'y' => "yank\n(copy)",
126 '^y'=> "window up\nYield",
129 '^z'=> ":sus<>pend\nzzz (as in sleep)",
131 'g~' => "case toggl<>e",
132 'g@' => "oper<>at<>or<>func",
133 'g#' => "rev. find string",
134 'g$' => "virt<>ual eol",
135 'g^' => qq'"soft" bol v<>irt<>ual',
136 'g&' => ":s rep<>eat glob<>al<>ly\nGlobal substitute",
137 'g*' => "find string",
138 'g_' => qq'"soft" eol',
139 'g+' => "later undo",
140 'g`' => "to mark keepj<>umps",
141 'g8' => "char hex val<>ue<>s",
142 'g0' => "virtual bol",
143 'g-' => "earlier undo",
144 "g\e"=> "normal mode",
145 'g]' => "go to tselect",
146 'g^]'=> "go to tjump",
147 'g;' => "to prev change pos",
148 "g'" => "to mark keepj<>umps",
149 'g<' => "see prev cmd output",
150 'g?' => "rot13 encode",
151 'g,' => "to next change pos",
153 'ga' => "char value\nGet Ascii value",
154 'g^a'=> "mem usage stats",
155 'gd' => "local declar<>ation",
156 'gD' => "global declar<>ation",
157 'ge' => "back to word end",
158 'gE' => qq'back to <span style="font-variant:small-caps">word</span> end',
159 'gf' => "edit file at cur<>sor\nGoto File",
160 'gF' => "edit file + jump",
161 'gg' => "first line",
162 'g^g'=> "cur<>sor pos info",
163 'gh' => "select mode\nGet Highlighted",
164 'gH' => "select lines\nGet Highlighted",
165 'g^h'=> "select block\nGet Highlighted",
166 'gi' => "insert at last pos",
167 'gI' => "insert at soft bol",
168 'gj' => "<down> screen",
169 'gJ' => "join leave spac<>ing",
170 'gk' => "<up> screen",
171 'gm' => "cen<>ter screen",
172 'gn' => "select next find",
173 'gN' => "select prev find",
174 'go' => ":goto (byte)",
175 'gp' => "paste still",
176 'gP' => "paste before still",
178 'gQ' => "ex mode manual :",
179 'gr' => "virt. repl<>ace char",
180 'gR' => "virt. repl<>ace mode",
181 'gs' => "sleep\nGo to Sleep",
182 'gt' => "next tab\nGoto Tab",
184 'gu' => "lower<>case",
185 'gU' => "up<>per<>case",
186 'gv' => "prev<>ious highl<>ight\nprecedinG Visual",
187 'gV' => "avoid resel<>ect<>ion",
188 'gw' => "for<>mat still",
189 'gx' => "Netrw<>BrowseX",
191 "Z\e"=> "normal mode",
192 'ZQ' => " :q! (force)",
193 'ZZ' => " :wq (write)",
195 'z^' => "page above",
196 'z+' => "page below",
197 'z-' => "line at bottom bol\ndon't (-) see any further",
198 'z=' => "sug<>gest spell<>ing",
199 'z.' => "line at center bol",
200 "z\e"=> "normal mode",
202 'za' => "toggle fold",
203 'zA' => "toggle fold rec<>urs<>ive<>ly",
204 'zb' => "line at bot. bol",
205 'zc' => "close fold",
206 'zC' => "close folds rec<>curs<>ive<>ly",
207 'zd' => "delete fold",
208 'zD' => "delete folds rec<>urs<>ive",
209 'ze' => "cursor at right side",
210 'zE' => "elimi<>nate f<>olds",
211 'zf' => "create fold",
212 'zF' => "fold lines",
213 'zg' => "add spell<>ing\nGood word",
214 'zG' => "temp spell<>ing",
215 'zh' => "scroll <left>",
216 'zH' => "scroll <left> half scr<>een",
217 'zi' => "toggle all folds",
218 'zj' => "next fold start",
219 'zk' => "prev fold end",
220 'zl' => "scroll <right>",
221 'zL' => "scroll <right> half scr<>een",
222 'z^m'=> "line at top bol",
224 'zM' => "close all folds",
226 'zN' => "fold norm<>al",
228 'zO' => "open folds rec<>urs<>ive<>ly",
229 'zr' => "reduce folding",
230 'zR' => "open all folds",
231 'zs' => "cursor at left side",
232 'zt' => "line at top",
233 'zu' => "undo spell<>ing",
234 'zv' => "unfold cursor line",
235 'zw' => "add missp<>ell<>ing\nWrong word",
236 'zW' => "temp missp<>ell<>ing",
237 'zx' => "update folds",
238 'zX' => "re<>apply f<>olds",
239 'zz' => "line at center\nZee Zenter (with a funny accent)",
241 "[`" => "previous lc mark",
242 '[#' => "previous open #if<>/#else",
243 '[(' => "previous open (",
244 '[/' => "start of C com<>m<>ent",
245 '[{' => "previous open {",
246 '[[' => "section back<>ward<>s",
247 "[\e"=> "normal mode",
248 '[]' => qq'<span style="font-variant:small-caps">section</span> back<>ward<>s',
250 '[c' => "start of change backw<>ards",
251 '[d' => "define line",
252 '[D' => "defin<>ition",
253 '[^d'=> "to defin<>it<>ion",
254 '[i' => "first occur<>renc<>e line",
255 '[I' => "first occur<>renc<>e",
256 '[^i'=> "to first occur<>renc<>e",
257 '[m' => "start of funct<>ion",
258 '[p' => "P reind<>ent<>ed",
259 '[s' => "last missp<>ell<>ing",
260 '[S' => "last bad word",
261 '[z' => "start of open fold",
263 "]`" => "next lc mark",
264 ']#' => "next open #endif<>/#else",
265 '])' => "next open )",
266 ']/' => "end of C com<>m<>ent",
267 '][' => qq'<span style="font-variant:small-caps">section</span> forw<>ard',
268 "]\e"=> "normal mode",
269 ']]' => "section forw<>ard",
270 ']}' => "next open }",
272 ']c' => "start of change forw<>ards",
273 ']d' => "next define line",
274 ']D' => "next define",
275 ']^d'=> "to next define",
276 ']i' => "next occur<>renc<>e line",
277 ']I' => "next occur<>renc<>e",
278 ']^i'=> "to occur<>renc<>e",
279 ']m' => "end of funct<>ion",
280 ']p' => "p reind<>ent<>ed",
281 ']s' => "next missp<>ell<>ing",
282 ']S' => "next bad word",
283 ']z' => "end of open fold",
285 '^w<' => "width decr<>ease",
286 '^w>' => "width incr<>ease",
287 '^w^' => "split, edit alt file",
288 '^w_' => "set height",
289 '^w+' => "height incr<>ease",
290 '^w-' => "height decr<>ease",
291 '^w=' => "same height",
292 "^w\e"=> "normal mode",
293 '^w]' => "split, to tag",
294 '^w}' => "pre<>view tag",
295 '^w|' => "set width",
297 '^wb' => "go to bot<>tom",
300 '^wd' => "split, to def<>inition",
301 '^wf' => "split, file edit",
302 '^wF' => "^wf, jump to line",
303 '^wg' => "extra cmds",
305 '^wH' => "move far left",
306 '^wi' => "split, to decl of id<>ent<>ifier",
308 '^wJ' => "move to bottom",
310 '^wK' => "move to top",
312 '^wL' => "move far right",
314 '^wo' => ":only current",
315 '^wp' => "go to prev<>ious",
316 '^wP' => "go to pre<>view",
317 '^wq' => ":quit current",
318 '^wr' => "rotate down<>ward<>s",
319 '^wR' => "rotate up<>ward<>s",
320 '^ws' => "split horiz<>ont<>al<>ly",
321 '^wt' => "go to top",
323 '^wv' => "split vert<>ic<>al<>ly",
324 '^ww' => "go to next\nWrap around",
325 '^wW' => "go above<>/left",
326 '^wx' => "ex<>chan<>ge",
327 '^wz' => "close pre<>view",
329 "^wg\e"=> "normal mode",
330 '^wg]' => "split, :ts<>elect",
331 '^wg}' => ":ptj<>ump to tag",
332 '^wg^]'=> "split, :tj<>ump",
333 '^wgf' => "file in tab",
334 '^wgF' => "^wgf, to line<>nr",
336 'v!' => "external filter",
337 'v:' => "cmd on range",
338 'v<' => "un<>indent",
339 'v=' => "re<>ind<>ent",
341 'v~' => "toggle case",
342 "v\e"=> "normal mode",
343 'v^]'=> "jump to tag",
345 'va' => "ex<>tend area",
346 'vA' => "ap<>pend to block", # block
347 'v^a'=> "incr<>ement num<>bers",
348 'vc' => "repl<>ace area",
349 'vC' => "repl<>ace full lines", # like vS, but blocks are extended until eol
351 'vd' => "delete area",
352 'vD' => "delete lines",
353 'vg' => "extra cmds",
354 'v^g'=> "select mode",
355 'vi' => "extend inner a<>r<>ea",
356 'vI' => "insert to block", # block
357 'vJ' => "join lines",
358 'vK' => "help sel<>ect<>ion",
359 'vo' => "to other corner",
360 'vO' => "to other side",
361 'v^o'=> "visual once", # select
362 'vp' => "repl<>ace w/ paste",
363 'vP' => "repl<>ace w/ paste",
364 'vr' => "fill up w/ ch<>ar",
365 'vS' => "repl<>ace lines",
366 'vu' => "lower<>case",
367 'vU' => "upper<>case",
368 'vv' => "char<>wise",
369 'vV' => "line<>wise",
370 'v^v'=> "block<>wise",
371 'v^x'=> "decr<>ement num<>bers",
373 'vY' => "yank lines",
375 "vg\e"=> "visual mode",
376 'vg?' => "rot13 encode",
377 'vg^a'=> "seq. incr<>ement",
378 'vg^g'=> "count region info",
379 'vgJ' => "join literal<>ly",
381 'vgw' => "for<>mat still",
382 'vg^x'=> "seq. decr<>ement",
384 "va'" => "quoted string",
385 'va<' => "<> block",
387 "va\e"=> "visual mode",
391 'vap' => "para<>graph",
392 'vas' => "senten<>ce",
393 'vat' => "xml tag block",
395 'vaW' => '<span style="font-variant:small-caps">word</span>',
397 # 'c^a' => "complete", #todo
399 # 'c^d' => "complete", #todo
401 # 'c^j' => "execute cmd",
402 # 'c^l' => "complete", #todo
403 # 'c^n' => "complete", #todo
404 # 'c^p' => "complete", #todo
405 # 'c^r' => \'i^r', # and then some...
406 # ## "insert register",
407 # 'c^y' => "selec<>tion to clip<>b<>oard",
409 'i^@' => "last insert",
410 'i^^' => "toggle :lmap usag<>e",
411 "i\e" => "normal mode",
412 'i^]' => "abbrev<>iate",
413 'i^_' => "toggle lang<>uage",
415 'i^a' => "insert prev<>ious",
416 'i^b' => "former i^_",
417 'i^c' => "abort, no abbr",
418 'i^d' => "un<>ind<>ent",
419 'i^e' => "ins char below",
420 'i^f' => "set indent<>ation",
421 'i^g' => "extra cmds",
422 'i^h' => "back<>space",
425 'i^k' => "di<>graph\nKey code",
426 'i^l' => "<em>im</em> leave ins mode",
428 'i^n' => "find next keyword",
429 'i^o' => "exec<>ute cmd",
430 'i^p' => "find prev keyword",
431 'i^r' => "insert reg<>ister",
433 'i^u' => "delete line",
434 'i^v' => "literal or ch<>ar<>cod<>e\nVerbatim or by Value",
435 'i^w' => "delete word back",
436 'i^x' => "ex<>pand mode",
437 'i^y' => "ins char above",
438 'i^z' => ":sus<>pend in <em>im</em>",
440 "i^g\e"=> "insert mode",
441 'i^gk' => "<up> start col<>umn",
442 'i^gj' => "<down> start col<>umn",
443 'i^gu' => "break undo seq<>uence",
444 'i^gU' => "keep undo seq<>uence",
445 # other i^g keys (even esc) are not recognized
447 "i^x\e" => "normal mode",
448 'i^x^]' => "tag comp<>l<>et<>e",
449 'i^x^d' => "def<>ine compl<>et<>e",
450 'i^x^e' => "window up",
451 'i^x^f' => "file comp<>l<>et<>e",
452 'i^x^i' => "ident comp<>l<>et<>e",
453 'i^x^k' => "dict comp<>l<>et<>e",
454 'i^x^l' => "line comp<>l<>et<>e",
455 'i^x^n' => "next comp<>l<>et<>e",
456 'i^x^o' => "omni comp<>l<>et<>e",
457 'i^x^p' => "prev comp<>l<>ete",
458 'i^x^s' => "spell sugg<>est",
459 'i^x^t' => "thes<>aur<>us compl<>et<>e",
460 'i^x^u' => "cus<>tom comp<>l<>et<>e",
461 'i^x^v' => "ex cmd compl<>et<>e",
462 'i^x^y' => "window down",
465 'gc' => "(un)<>com<>ment\ncommentary or tComment plugin",
466 'vgc' => "(un)<>com<>ment\ncommentary or tComment plugin",
467 'gl' => "align to left\nlion plugin, also good for easy-align",
468 'vgl' => "align to left\nlion plugin, also good for easy-align",
469 'gL' => "align to right\nlion plugin",
470 'vgL' => "align to right\nlion plugin",
471 'i^gs' => "sur<>round\nsurround plugin",
474 '[a' => "prev<>ious file\nunimpaired map for :prev",
475 ']a' => "next file\nunimpaired map for :n",
476 '[A' => "first file\nunimpaired map for :rew",
477 ']A' => "last file\nunimpaired map for :la",
478 '[b' => "prev<>ious buffer\nunimpaired map for :bp",
479 ']b' => "next buffer\nunimpaired map for :bn",
480 '[B' => "first buffer\nunimpaired map for :br",
481 ']B' => "last buffer\nunimpaired map for :bl",
482 '[e' => "exchange line above\nunimpaired plugin",
483 ']e' => "exchange line belo<>w\nunimpaired plugin",
484 '[f' => "preced<>ing file alph<>abet<>ic<>al<>ly\nunimpaired plugin",
485 ']f' => "next file alph<>abet<>ic<>al<>ly\nunimpaired plugin",
486 '[l' => "previous loc<>at<>ion\nunimpaired map for :lp",
487 ']l' => "next loc<>ation\nunimpaired map for :lne",
488 '[L' => "first loc<>ation\nunimpaired map for :lr",
489 ']L' => "last loc<>ation\nunimpaired map for :lla",
490 '[^l'=> "next file in loc<>at<>ions\nunimpaired map for :lpf",
491 ']^l'=> "file back in loc<>at<>ions\nunimpaired map for :lnf",
492 '[n' => "previous conflict<>/hunk\nunimpaired plugin",
493 ']n' => "next confl<>ict<>/hunk\nunimpaired plugin",
494 '[o' => "enable option\nunimpaired plugin",
495 ']o' => "disable option\nunimpaired plugin",
496 'yo' => "toggle option\nunimpaired plugin",
497 '[q' => "previous quickfix\nunimpaired map for :cp",
498 ']q' => "next quickfix error\nunimpaired map for :cn",
499 '[Q' => "first quickfix\nunimpaired map for :cr",
500 ']Q' => "last quickfix error\nunimpaired map for :cla",
501 '[^q'=> "quickfix file b<>ack\nunimpaired map for :cpf",
502 ']^q'=> "next file in q<>uick<>f<>ix\nunimpaired map for :cnf",
503 '[t' => "previous tag\nunimpaired map for :tp",
504 ']t' => "next tag\nunimpaired map for :tn",
505 '[T' => "first tag\nunimpaired map for :tr",
506 ']T' => "last tag\nunimpaired map for :tl",
507 '[u' => "url encode\nunimpaired plugin",
508 ']u' => "url decode\nunimpaired plugin",
509 '[x' => "xml encode\nunimpaired plugin",
510 ']x' => "xml decode\nunimpaired plugin",
511 '[y' => "escape c str<>ing\nunimpaired plugin",
512 ']y' => "unescap<>e c str<>ing\nunimpaired plugin",
514 (map { ("d$_" => "delete to <alias>$_") } qw( g z [ ] )),
515 'dW' => 'delete <span style="font-variant:small-caps">word</span>',
516 'db' => 'delete <left> word',
517 'dB' => 'delete <left> <span style="font-variant:small-caps">word</span>',
518 'de' => 'delete word e<>nd',
519 'dE' => 'delete <span style="font-variant:small-caps">word</span> e<>nd',
520 'df' => 'delete to char<>acter',
521 'dF' => 'delete <left> to char<>acter',
522 'dG' => 'delete to line<>/eof',
523 'dH' => 'delete to top',
524 'dj' => 'delete <down> line',
525 'dk' => 'delete <up> line',
526 'dL' => 'delete to bottom',
527 'dM' => 'delete to middle',
528 'dn' => 'delete to next res<>ult',
529 'dN' => 'delete to prev res<>ult',
530 'dt' => 'delete upto ch<>ar<>acter',
531 'dT' => 'delete <left> upto ch<>ar<>acter',
532 'dw' => 'delete word',
533 'd,' => 'delete to prev ch<>ar<>acter',
534 'd;' => 'delete to next ch<>ar<>acter',
535 'd/' => 'delete to res<>ult',
536 'd?' => 'delete <left> to res<>ult',
537 'd`' => 'delete to mark',
538 "d'" => 'delete lines to m<>ark',
539 'd*' => 'delete to find',
540 'd#' => 'delete <left> to find',
541 'd%' => 'delete to line pct',
542 'd^' => 'delete to soft bol',
543 'd0' => 'delete to bol',
544 'd|' => 'delete to col<>umn',
545 'd{' => 'delete <left> par<>agr<>aph',
546 'd}' => 'delete rest of p<>ar<>agr<>aph',
547 'd(' => 'delete <left> senten<>ce',
548 'd)' => 'delete rest of s<>en<>ten<>ce',
549 'da' => 'delete area',
550 'di' => 'delete inner',
551 'dd' => 'delete line',
552 'do' => 'diff obtain',
554 'ds' => 'delete surr<>oun<>d<>ing',
559 g => "extended commands (g)",
560 Z => "quit commands",
561 z => "additional commands (z)",
562 '[' => "backward search commands ([)",
563 ']' => "forward search commands (])",
564 '^w' => "window commands (ctrl-w)",
565 '^wg' => "extended window commands (ctrl-w g)",
567 vg => "extended visual commands (v g)",
568 va => "text object selection (v a/i)",
569 # c => "command-line mode",
571 'i^g' => "extended insert commands (i ctrl-g)",
572 'i^x' => "insert completion commands (i ctrl-x)",
573 d => 'delete motions',
577 g1 => ["info", "Info command: shows/does something without altering anything."],
578 g2 => ["motion", "Moves the cursor, or defines the range for an operator (<motion>)."],
579 g3 => ["positioning", "Other movement (jumps, window (re)positioning)."],
580 g4 => ["command", "Direct action command."],
581 g6 => ["ins mode", "Enters Insert or Replace mode."],
582 g7 => ["mode", "Enters a different mode."],
583 g8 => ["vis mode", "Enters Visual or Select mode."],
584 g9 => ["key cmd", "Additional key commands (click for overview)."],
586 arg => ["key<arg>", "Commands with a dot need a char argument afterwards."],
587 motion => ["key<motion>", "Requires a motion afterwards, operates between cursor and destination."],
588 'v6 new' => ["vim", "Not in original Vi (assessment incomplete)."],
589 'xcommentary xlion xsurround xunimpaired ext' => ["plugin", "Optional features provided by common plugins."],
595 '!' => "g4 argm undo modec",
596 '@' => "g4 arg undo",
611 '=' => 'g4 argm undo',
612 '?' => "g2 arg modec",
620 '<' => "g4 argm undo",
622 '>' => "g4 argm undo",
623 '/' => "g2 arg modec",
624 '[' => "g9 arg mode[",
626 ']' => "g9 arg mode]",
631 'a' => "g6 undo modei",
632 'A' => "g6 undo modei",
637 'c' => "g6 argm undo modei",
638 'C' => "g6 undo modei",
640 'd' => "g4 argm undo moded",
649 'g' => "g9 arg modeg",
655 'i' => "g6 undo modei",
656 'I' => "g6 undo modei",
672 'o' => "g6 undo modei",
673 'O' => "g6 undo modei",
681 'r' => "g4 arg undo",
682 'R' => "g6 undo modei",
684 's' => "g6 undo modei",
685 'S' => "g6 undo modei",
695 '^v'=> "g8 modev v6",
698 '^w'=> "g9 arg mode^w",
705 'z' => "g9 arg modez",
706 'Z' => "g9 arg modeZ",
739 'c' => 'g4 argm xcommentary',
750 '^h'=> "g8 modev v6",
751 'i' => "g6 undo modei",
752 'I' => "g6 undo modei",
756 'l' => 'g3 argm arg xlion',
757 'L' => 'g3 argm arg xlion',
759 'n' => "g8 v7 modev",
760 'N' => "g8 v7 modev",
767 'R' => "g6 undo modei",
771 'u' => "g4 argm v6", # XXX undo?
772 'U' => "g4 undo argm v6",
801 'a' => "g4 v6 folding",
802 'A' => "g4 v6 folding",
804 'c' => "g4 v6 folding",
805 'C' => "g4 v6 folding",
806 'd' => "g4 v6 folding",
807 'D' => "g4 v6 folding",
809 'E' => "g4 v6 folding",
810 'f' => "g4 argm v6 folding",
811 'F' => "g4 v6 folding",
816 'i' => "g4 v6 folding",
817 'j' => "g2 v6 folding",
818 'k' => "g2 v6 folding",
822 'm' => "g4 v6 folding",
823 'M' => "g4 v6 folding",
824 'n' => "g4 v6 folding",
825 'N' => "g4 v6 folding",
826 'o' => "g4 v6 folding",
827 'O' => "g4 v6 folding",
828 'r' => "g4 v6 folding",
829 'R' => "g4 v6 folding",
833 'v' => "g4 v6 folding",
836 'x' => "g4 v6 folding",
837 'X' => "g4 v6 folding",
851 "'" => "=0[`^ g2 v6",
861 'f' => "=gf", # deprecated
870 'z' => "g2 v6 folding",
872 'a' => "g3 xunimpaired",
873 'A' => "g3 xunimpaired",
874 'b' => "g3 xunimpaired",
875 'B' => "g3 xunimpaired",
876 'e' => "g4 xunimpaired",
877 'l' => "g3 xunimpaired",
878 'L' => "g3 xunimpaired",
879 '^l'=> "g3 xunimpaired",
880 '^l'=> "g3 xunimpaired",
881 'f' => "g3 xunimpaired", # overrides native alias
882 'n' => "g3 xunimpaired",
883 'o' => "g9 arg xunimpaired",
884 'q' => "g3 xunimpaired",
885 'Q' => "g3 xunimpaired",
886 '^q'=> "g3 xunimpaired",
887 't' => "g3 xunimpaired",
888 'T' => "g3 xunimpaired",
889 'u' => "g4 argm xunimpaired",
890 'x' => "g4 argm xunimpaired",
891 'y' => "g4 argm xunimpaired",
892 ' ' => "g4 xunimpaired",
904 "'" => '=$]`^ g2 v6',
915 'f' => "=gf", # deprecated
924 'z' => "g2 v6 folding",
926 'a' => "g3 xunimpaired",
927 'A' => "g3 xunimpaired",
928 'b' => "g3 xunimpaired",
929 'B' => "g3 xunimpaired",
930 'e' => "g4 xunimpaired",
931 'l' => "g3 xunimpaired",
932 'L' => "g3 xunimpaired",
933 '^l'=> "g3 xunimpaired",
934 '^l'=> "g3 xunimpaired",
935 'f' => "g3 xunimpaired", # overrides native alias
936 'n' => "g3 xunimpaired",
937 'o' => "g9 arg xunimpaired",
938 'q' => "g3 xunimpaired",
939 'Q' => "g3 xunimpaired",
940 '^q'=> "g3 xunimpaired",
941 't' => "g3 xunimpaired",
942 'T' => "g3 xunimpaired",
943 'u' => "g4 argm xunimpaired",
944 'x' => "g4 argm xunimpaired",
945 'y' => "g4 argm xunimpaired",
946 ' ' => "g4 xunimpaired",
972 'g' => "g9 arg mode^wg",
1025 'a' => 'g9 modeva arg v6',
1026 'A' => 'g6 modei v6',
1027 '^a'=> 'g4 undo v8',
1028 'c' => 'g6 modei v6',
1029 'C' => 'g6 modei v6',
1033 'g' => "g9 arg modevg",
1035 'i' => "g9 modeva arg v6",
1036 'I' => "g6 modei v6", # block
1045 'R' => "=vS", # "might change in future"
1047 'S' => 'g6 modei v6',
1055 '^x'=> 'g4 undo v8',
1059 (map { $_ => "=$_" } @motions, qw(
1060 ^b ^d ^e ^f ^i m q ^q ^s ^u ^w ^y z ^z "
1061 )), # a lot like normal mode
1071 '^a'=> 'g4 undo v8',
1073 'c' => 'g4 xcommentary',
1075 'l' => 'g3 arg xlion',
1076 'L' => 'g3 arg xlion',
1080 '^x'=> 'g4 undo v8',
1109 # desc => "command-line mode",
1125 # '^r' => "=i^r", # and then some...
1150 '^g' => "g9 modei^g arg",
1154 '^k' => 'g4 arg arg v6 linkdigraphs',
1155 '^l' => "g7 mode v6", # insertmode only
1160 '^q' => "=^q", # or i^v
1161 '^r' => 'g4 arg v6',
1165 '^v' => 'g4 linkcharset',
1167 '^x' => 'g9 arg modei^x v6',
1169 '^z' => "g1 v6", # insertmode only
1179 's' => 'g4 arg xsurround',
1182 # other keys (even esc) are not recognized
1188 "\e" => "g7 mode", # yes, it really leaves insert mode
1215 (map { $_ => 'g4' } @motions),
1216 (map { $_ => 'g4 arg' } qw( f F t T ` ' / ? )), # @motions with option
1217 (map { $_ => "=v$_" } qw( a i )), # motions from virtual
1218 (map { $_ => "=$_" } qw( g z [ ] \\ ^\\ ^q ^s ^z )),
1223 's' => 'g4 arg xsurround',
1238 # TODO: mode/ (command-line)
1239 # XXX ex mode if you want to go completely wild