8 '!' => "filt<>er lines",
10 '#' => "rev. find word",
16 '(' => "begin senten<>ce",
17 ')' => "end senten<>ce",
18 '_' => '"soft" bol down',
22 '^^'=> "edit alt. file",
24 '=' => "re<>ind<>ent",
26 ';' => "repeat t/f/T/F",
28 "'" => "goto mark bol",
29 '"' => "use reg<>ister",
31 '^\\' => "to mode/<>ext<>ens<>ion<>s",
32 ',' => "reverse t/T/f/F",
33 '<' => "un<>ind<>ent",
34 '.' => "repeat last cmd",
37 '[' => "move back<>ward<>s",
38 '{' => "begin parag.",
39 ']' => "move forw<>ard",
42 '|' => "goto (1st) col",
45 'A' => "app<>end to eol",
46 '^a'=> "incr<>ement\nAdd one",
47 'b' => "prev word\nBack",
48 'B' => 'prev <span style="font-variant:small-caps">word</span>',
51 'C' => "chan<>ge to eol",
54 'D' => "delete to eol",
57 'E' => 'end <span style="font-variant:small-caps">word</span>',
58 '^e'=> "window down\nExtra line",
60 'F' => "back<>wd to char",
61 '^f'=> "page down\npage Forward",
63 'G' => "eof/<>goto ln",
64 '^g'=> ":file (info)",
66 'H' => "screen top\nHome row",
68 'I' => "insert at bol",
69 '^i'=> "jump to newer\nIncrease position",
73 'K' => "help\nlooKup Keyword",
75 'L' => "screen bottom\nLowermost Line",
78 'M' => "screen mid<>dle",
81 'o' => "line below\nOpen",
83 '^o'=> "jump to older",
85 'P' => "paste before",
86 'q' => "rec<>ord macro\nQueue seQuence",
88 '^q'=> "(xon)\nQome back",
89 'r' => "repl<>ace char",
90 'R' => "repl<>ace mode",
94 '^s'=> "(xoff)\nStop",
96 'T' => "back till char",
97 '^t'=> "back tag", # backtrag :P
101 'v' => "visual mode",
102 'V' => "visual lines",
103 '^v'=> "visual block",
105 'W' => 'next <span style="font-variant:small-caps">word</span>',
106 '^w'=> "win<>dow cmds",
107 'x' => "delete char",
108 'X' => "back<>space",
109 '^x'=> "subs<>tract",
110 'y' => "yank\n(copy)",
112 '^y'=> "window up\nYield",
115 '^z'=> ":sus<>pend\nzzz (as in sleep)",
117 'g~' => "case toggl<>e",
118 'g@' => "oper<>at<>or<>func",
119 'g#' => "rev. find string",
120 'g$' => "virt<>ual eol",
121 'g^' => qq'"soft" bol v<>irt<>ual',
122 'g&' => ":s rep<>eat glob<>al<>ly\nGlobal substitute",
123 'g*' => "find string",
124 'g_' => qq'"soft" eol',
125 'g+' => "later undo",
126 'g`' => "to mark keepj<>umps",
127 'g8' => "char hex val<>ue<>s",
128 'g0' => "virtual bol",
129 'g-' => "earlier undo",
130 "g\e"=> "normal mode",
131 'g]' => "go to tselect",
132 'g^]'=> "go to tjump",
133 'g;' => "to prev change pos",
134 "g'" => "to mark keepj<>umps",
135 'g<' => "see prev cmd output",
136 'g?' => "rot13 encode",
137 'g,' => "to next change pos",
139 'ga' => "char value\nGet Ascii value",
140 'g^a'=> "mem usage stats",
141 'gd' => "local declar<>ation",
142 'gD' => "global declar<>ation",
143 'ge' => "back to word end",
144 'gE' => qq'back to <span style="font-variant:small-caps">word</span> end',
145 'gf' => "edit file at cur<>sor\nGoto File",
146 'gF' => "edit file + jump",
147 'gg' => "first line",
148 'g^g'=> "cur<>sor pos info",
149 'gh' => "select mode\nGet Highlighted",
150 'gH' => "select lines\nGet Highlighted",
151 'g^h'=> "select block\nGet Highlighted",
152 'gi' => "insert at last pos",
153 'gI' => "insert at soft bol",
154 'gj' => "<down> screen",
155 'gJ' => "join leave spac<>ing",
156 'gk' => "<up> screen",
157 'gm' => "cen<>ter screen",
158 'gn' => "select next find",
159 'gN' => "select prev find",
160 'go' => ":goto (byte)",
161 'gp' => "paste still",
162 'gP' => "paste before still",
164 'gQ' => "ex mode manual :",
165 'gr' => "virt. repl<>ace char",
166 'gR' => "virt. repl<>ace mode",
167 'gs' => "sleep\nGo to Sleep",
168 'gt' => "next tab\nGoto Tab",
170 'gu' => "lower<>case",
171 'gU' => "up<>per<>case",
172 'gv' => "prev<>ious highl<>ight\nprecedinG Visual",
173 'gV' => "avoid resel<>ect<>ion",
174 'gw' => "for<>mat still",
175 'gx' => "Netrw<>BrowseX",
177 "Z\e"=> "normal mode",
178 'ZQ' => " :q! (force)",
179 'ZZ' => " :wq (write)",
181 'z^' => "page above",
182 'z+' => "page below",
183 'z-' => "line at bottom bol\ndon't (-) see any further",
184 'z=' => "sug<>gest spell<>ing",
185 'z.' => "line at center bol",
186 "z\e"=> "normal mode",
188 'za' => "toggle fold",
189 'zA' => "toggle fold rec<>urs<>ive<>ly",
190 'zb' => "line at bot. bol",
191 'zc' => "close fold",
192 'zC' => "close folds rec<>curs<>ive<>ly",
193 'zd' => "delete fold",
194 'zD' => "delete folds rec<>urs<>ive",
195 'ze' => "cursor at right side",
196 'zE' => "elimi<>nate f<>olds",
197 'zf' => "create fold",
198 'zF' => "fold lines",
199 'zg' => "add spell<>ing\nGood word",
200 'zG' => "temp spell<>ing",
201 'zh' => "scroll <left>",
202 'zH' => "scroll <left> half scr<>een",
203 'zi' => "toggle all folds",
204 'zj' => "next fold start",
205 'zk' => "prev fold end",
206 'zl' => "scroll <right>",
207 'zL' => "scroll <right> half scr<>een",
208 'z^m'=> "line at top bol",
210 'zM' => "close all folds",
212 'zN' => "fold norm<>al",
214 'zO' => "open folds rec<>urs<>ive<>ly",
215 'zr' => "reduce folding",
216 'zR' => "open all folds",
217 'zs' => "cursor at left side",
218 'zt' => "line at top",
219 'zu' => "undo spell<>ing",
220 'zv' => "unfold cursor line",
221 'zw' => "add missp<>ell<>ing\nWrong word",
222 'zW' => "temp missp<>ell<>ing",
223 'zx' => "update folds",
224 'zX' => "re<>apply f<>olds",
225 'zz' => "line at center\nZee Zenter (with a funny accent)",
227 "[`" => "previous lc mark",
228 '[#' => "previous open #if<>/#else",
229 '[(' => "previous open (",
230 '[/' => "start of C com<>m<>ent",
231 '[{' => "previous open {",
232 '[[' => "section back<>ward<>s",
233 "[\e"=> "normal mode",
234 '[]' => qq'<span style="font-variant:small-caps">section</span> back<>ward<>s',
236 '[c' => "start of change backw<>ards",
237 '[d' => "define line",
238 '[D' => "defin<>ition",
239 '[^d'=> "to defin<>it<>ion",
240 '[i' => "first occur<>renc<>e line",
241 '[I' => "first occur<>renc<>e",
242 '[^i'=> "to first occur<>renc<>e",
243 '[m' => "start of funct<>ion",
244 '[p' => "P reind<>ent<>ed",
246 '[s' => "last missp<>ell<>ing",
247 '[S' => "last bad word",
248 '[z' => "start of open fold",
250 "]`" => "next lc mark",
251 ']#' => "next open #endif<>/#else",
252 '])' => "next open )",
253 ']/' => "end of C com<>m<>ent",
254 '][' => qq'<span style="font-variant:small-caps">section</span> forw<>ard',
255 "]\e"=> "normal mode",
256 ']]' => "section forw<>ard",
257 ']}' => "next open }",
259 ']c' => "start of change forw<>ards",
260 ']d' => "next define line",
261 ']D' => "next define",
262 ']^d'=> "to next define",
263 ']i' => "next occur<>renc<>e line",
264 ']I' => "next occur<>renc<>e",
265 ']^i'=> "to occur<>renc<>e",
266 ']m' => "end of funct<>ion",
267 ']p' => "p reind<>ent<>ed",
268 ']s' => "next missp<>ell<>ing",
269 ']S' => "next bad word",
270 ']z' => "end of open fold",
272 '^w<' => "width decr<>ease",
273 '^w>' => "width incr<>ease",
274 '^w^' => "split, edit alt file",
275 '^w_' => "set height",
276 '^w+' => "height incr<>ease",
277 '^w-' => "height decr<>ease",
278 '^w=' => "same height",
279 "^w\e"=> "normal mode",
280 '^w]' => "split, to tag",
281 '^w}' => "pre<>view tag",
282 '^w|' => "set width",
284 '^wb' => "go to bot<>tom",
287 '^wd' => "split, to def<>inition",
288 '^wf' => "split, file edit",
289 '^wF' => "^wf, jump to line",
290 '^wg' => "extra cmds",
292 '^wH' => "move far left",
293 '^wi' => "split, to decl of id<>ent<>ifier",
295 '^wJ' => "move to bottom",
297 '^wK' => "move to top",
299 '^wL' => "move far right",
301 '^wo' => ":only current",
302 '^wp' => "go to prev<>ious",
303 '^wP' => "go to pre<>view",
304 '^wq' => ":quit current",
305 '^wr' => "rotate down<>ward<>s",
306 '^wR' => "rotate up<>ward<>s",
307 '^ws' => "split horiz<>ont<>al<>ly",
308 '^wt' => "go to top",
310 '^wv' => "split vert<>ic<>al<>ly",
311 '^ww' => "go to next\nWrap around",
312 '^wW' => "go above<>/left",
313 '^wx' => "ex<>chan<>ge",
314 '^wz' => "close pre<>view",
316 "^wg\e"=> "normal mode",
317 '^wg]' => "split, :ts<>elect",
318 '^wg}' => ":ptj<>ump to tag",
319 '^wg^]'=> "split, :tj<>ump",
320 '^wgf' => "file in tab",
321 '^wgF' => "^wgf, to line<>nr",
323 'v!' => "external filter",
324 'v:' => "cmd on range",
325 'v<' => "un<>indent",
326 'v=' => "re<>ind<>ent",
328 'v~' => "toggle case",
329 "v\e"=> "normal mode",
330 'v^]'=> "jump to tag",
332 'va' => "ex<>tend area",
333 'vA' => "ap<>pend to block", # block
334 'v^a'=> "incr<>ement num<>bers",
335 'vc' => "repl<>ace area",
336 'vC' => "repl<>ace full lines", # like vS, but blocks are extended until eol
338 'vd' => "delete area",
339 'vD' => "delete lines",
340 'vg' => "extra cmds",
341 'v^g'=> "select mode",
342 'v^h'=> "back<>space", # delete in select mode, left otherwise
343 'vi' => "extend inner a<>r<>ea",
344 'vI' => "insert to block", # block
345 'vJ' => "join lines",
346 'vK' => "help sel<>ect<>ion",
347 'vo' => "to other corner",
348 'vO' => "to other side",
349 'v^o'=> "visual once", # select
350 'vp' => "repl<>ace w/ paste",
351 'vP' => "repl<>ace w/ paste",
352 'vr' => "fill up w/ ch<>ar",
353 'vS' => "repl<>ace lines",
354 'vu' => "lower<>case",
355 'vU' => "upper<>case",
356 'vv' => "char<>wise",
357 'vV' => "line<>wise",
358 'v^v'=> "block<>wise",
359 'v^x'=> "decr<>ement num<>bers",
361 'vY' => "yank lines",
363 "vg\e"=> "visual mode",
364 'vg?' => "rot13 encode",
365 'vg^a'=> "seq. incr<>ement",
366 'vg^g'=> "count region info",
367 'vgJ' => "join literal<>ly",
369 'vgw' => "for<>mat still",
370 'vg^x'=> "seq. decr<>ement",
372 "va'" => "quoted string",
373 'va<' => "<> block",
375 "va\e"=> "visual mode",
379 'vap' => "para<>graph",
380 'vas' => "senten<>ce",
381 'vat' => "xml tag block",
383 'vaW' => '<span style="font-variant:small-caps">word</span>',
385 # 'c^a' => "complete", #todo
387 # 'c^d' => "complete", #todo
389 # 'c^j' => "execute cmd",
390 # 'c^l' => "complete", #todo
391 # 'c^n' => "complete", #todo
392 # 'c^p' => "complete", #todo
393 # 'c^r' => \'i^r', # and then some...
394 # ## "insert register",
395 # 'c^y' => "selec<>tion to clip<>b<>oard",
397 'i^@' => "last insert",
398 'i^^' => "toggle :lmap usag<>e",
399 "i\e" => "normal mode",
400 'i^]' => "abbrev<>iate",
401 'i^_' => "toggle lang<>uage",
403 'i^a' => "insert prev<>ious",
404 'i^b' => "former i^_",
405 'i^c' => "abort, no abbr",
406 'i^d' => "un<>ind<>ent",
407 'i^e' => "ins char below",
408 'i^f' => "set indent<>ation",
409 'i^g' => "extra cmds",
410 'i^h' => "back<>space",
413 'i^k' => "di<>graph\nKey code",
414 'i^l' => "<em>im</em> leave ins mode",
416 'i^n' => "find next keyword",
417 'i^o' => "exec<>ute cmd",
418 'i^p' => "find prev keyword",
419 'i^r' => "insert reg<>ister",
421 'i^u' => "delete line",
422 'i^v' => "literal or ch<>ar<>cod<>e\nVerbatim or by Value",
423 'i^w' => "delete word back",
424 'i^x' => "ex<>pand mode",
425 'i^y' => "ins char above",
426 'i^z' => ":sus<>pend in <em>im</em>",
428 "i^g\e"=> "insert mode",
429 'i^gk' => "<up> start col<>umn",
430 'i^gj' => "<down> start col<>umn",
431 'i^gu' => "break undo seq<>uence",
432 'i^gU' => "keep undo seq<>uence",
433 # other i^g keys (even esc) are not recognized
435 "i^x\e" => "normal mode",
436 'i^x^]' => "tag comp<>l<>et<>e",
437 'i^x^d' => "def<>ine compl<>et<>e",
438 'i^x^e' => "window up",
439 'i^x^f' => "file comp<>l<>et<>e",
440 'i^x^i' => "ident comp<>l<>et<>e",
441 'i^x^k' => "dict comp<>l<>et<>e",
442 'i^x^l' => "line comp<>l<>et<>e",
443 'i^x^n' => "next comp<>l<>et<>e",
444 'i^x^o' => "omni comp<>l<>et<>e",
445 'i^x^p' => "prev comp<>l<>ete",
446 'i^x^s' => "spell sugg<>est",
447 'i^x^t' => "thes<>aur<>us compl<>et<>e",
448 'i^x^u' => "cus<>tom comp<>l<>et<>e",
449 'i^x^v' => "ex cmd compl<>et<>e",
450 'i^x^y' => "window down",
455 g => "extended commands (g)",
456 Z => "quit commands",
457 z => "additional commands (z)",
458 '[' => "backward search commands ([)",
459 ']' => "forward search commands (])",
460 '^w' => "window commands (ctrl-w)",
461 '^wg' => "extended window commands (ctrl-w g)",
463 vg => "extended visual commands (v g)",
464 va => "text object selection (v a/i)",
465 # c => "command-line mode",
467 'i^g' => "extended insert commands (i ctrl-g)",
468 'i^x' => "insert completion commands (i ctrl-x)",
472 g1 => ["info", "Info command: shows/does something without altering anything."],
473 g2 => ["motion", "Moves the cursor, or defines the range for an operator (<motion>)."],
474 g3 => ["positioning", "Other movement (jumps, window (re)positioning)."],
475 g4 => ["command", "Direct action command."],
476 g6 => ["ins mode", "Enters Insert or Replace mode."],
477 g7 => ["mode", "Enters a different mode."],
478 g8 => ["vis mode", "Enters Visual or Select mode."],
479 g9 => ["key cmd", "Additional key commands (click for overview)."],
481 arg => ["key<arg>", "Commands with a dot need a char argument afterwards."],
482 motion => ["key<motion>", "Requires a motion afterwards, operates between cursor and destination."],
483 'vim6 ext' => ["vim", "Not in original Vi (assessment incomplete)."],
484 'vim7 ext new' => ["vim7", "New in vim version 7.x."],
490 '!' => "g4 argm undo modec",
491 '@' => "g4 arg undo",
492 '#' => "g2 ext vim6",
497 '*' => "g2 ext vim6",
506 '=' => 'g4 argm undo',
507 '?' => "g2 arg modec",
515 '<' => "g4 argm undo",
517 '>' => "g4 argm undo",
518 '/' => "g2 arg modec",
519 '[' => "g9 arg mode[",
521 ']' => "g9 arg mode]",
526 'a' => "g6 undo modei",
527 'A' => "g6 undo modei",
532 'c' => "g6 argm undo modei",
533 'C' => "g6 undo modei",
535 'd' => "g4 argm undo",
544 'g' => "g9 arg modeg",
550 'i' => "g6 undo modei",
551 'I' => "g6 undo modei",
552 '^i'=> "g2 ext vim6",
567 'o' => "g6 undo modei",
568 'O' => "g6 undo modei",
569 '^o'=> "g2 ext vim6",
576 'r' => "g4 arg undo",
577 'R' => "g6 undo modei",
578 '^r'=> "g4 undo ext vim6",
579 's' => "g6 undo modei",
580 'S' => "g6 undo modei",
590 '^v'=> "g8 modev ext vim6",
593 '^w'=> "g9 arg mode^w",
600 'z' => "g9 arg modez",
601 'Z' => "g9 arg modeZ",
610 '~' => "g4 argm ext vim6",
611 '@' => "g4 ext vim7 new",
612 '#' => "g2 ext vim6",
614 '^' => "g2 ext vim6",
616 '*' => "g2 ext vim6",
617 '_' => "g2 ext vim6",
618 '+' => "g4 ext vim7 new",
619 '`' => "g2 ext vim6 arg",
621 '0' => "g2 ext vim6",
622 '-' => "g4 ext vim7 new",
627 "'" => "g2 ext vim6 arg",
628 '<' => "g4 ext vim7 new",
629 '?' => "g4 argm ext vim6",
634 'd' => "g2 ext vim6",
635 'D' => "g2 ext vim6",
638 'f' => "g4 ext vim6",
639 'F' => "g4 ext vim7 new",
644 '^h'=> "g8 modev ext vim6",
645 'i' => "g6 undo modei",
646 'I' => "g6 undo modei",
647 'j' => "g2 ext vim6",
649 'k' => "g2 ext vim6",
650 'm' => "g2 ext vim6",
651 'n' => "g8 vim7 new modev",
652 'N' => "g8 vim7 new modev",
657 'Q' => "g7 ext vim6",
659 'R' => "g6 undo modei",
660 's' => "g1 ext vim6",
661 't' => "g3 ext vim7 new",
662 'T' => "g3 ext vim7 new",
663 'u' => "g4 argm ext vim6", # XXX undo?
664 'U' => "g4 undo argm ext vim6",
667 'w' => "g4 argm ext vim7 new",
668 'x' => "g4 ext vim7 new",
677 'Q' => "g4 ext vim6",
689 '=' => "g4 ext vim7 new",
693 'a' => "g4 ext vim6 folding",
694 'A' => "g4 ext vim6 folding",
696 'c' => "g4 ext vim6 folding",
697 'C' => "g4 ext vim6 folding",
698 'd' => "g4 ext vim6 folding",
699 'D' => "g4 ext vim6 folding",
701 'E' => "g4 ext vim6 folding",
702 'f' => "g4 argm ext vim6 folding",
703 'F' => "g4 ext vim6 folding",
704 'g' => "g4 ext vim7 new",
705 'G' => "g4 ext vim7 new",
708 'i' => "g4 ext vim6 folding",
709 'j' => "g2 ext vim6 folding",
710 'k' => "g2 ext vim6 folding",
714 'm' => "g4 ext vim6 folding",
715 'M' => "g4 ext vim6 folding",
716 'n' => "g4 ext vim6 folding",
717 'N' => "g4 ext vim6 folding",
718 'o' => "g4 ext vim6 folding",
719 'O' => "g4 ext vim6 folding",
720 'r' => "g4 ext vim6 folding",
721 'R' => "g4 ext vim6 folding",
724 'u' => "g4 arg ext vim7 new",
725 'v' => "g4 ext vim6 folding",
726 'w' => "g4 ext vim7 new",
727 'W' => "g4 ext vim7 new",
728 'x' => "g4 ext vim6 folding",
729 'X' => "g4 ext vim6 folding",
738 "`" => "g2 ext vim6",
743 "'" => "=[` ^", # ext vim6
753 'f' => "=gf", # deprecated
760 's' => "g3 ext vim7 new",
761 'S' => "g3 ext vim7 new",
762 'z' => "g2 ext vim6 folding",
770 "`" => "g2 ext vim6",
774 "'" => "=]` ^", # ext vim6
785 'f' => "=gf", # deprecated
792 's' => "g3 ext vim7 new",
793 'S' => "g3 ext vim7 new",
794 'z' => "g2 ext vim6 folding",
819 'F' => "g4 ext vim7 new",
820 'g' => "g9 arg mode^wg",
840 'T' => "g3 vim7 new",
856 'f' => "g4 ext vim7 new",
857 'F' => "g4 ext vim7 new",
871 '~' => "g4 ext vim6",
876 'a' => 'g9 modeva arg ext vim6',
877 'A' => 'g6 modei ext vim6',
878 '^a'=> 'g4 undo vim8 ext new',
879 'c' => 'g6 modei ext vim6',
880 'C' => 'g6 modei ext vim6',
882 'd' => "g4 ext vim6",
883 'D' => "g4 ext vim6",
884 'g' => "g9 arg modevg",
887 'i' => "g9 modeva arg ext vim6",
888 'I' => "g6 modei ext vim6", # block
898 'R' => "=vS", # "might change in future"
901 'S' => 'g6 modei ext vim6',
902 'u' => "g4 ext vim6",
903 'U' => "g4 ext vim6",
906 '^v'=> "g8 ext vim6",
909 '^x'=> 'g4 undo vim8 ext new',
913 map { $_ => "=$_" } qw(
914 b B ^b ^d e E ^e f F ^f G h H ^i j ^j k l L m M ^m
915 n N ^n ^p q ^s t T ^u w W ^w ^y z ^z
916 ` # $ % ^ * ( 0 ) [ { ] } ; / ? + - _ |
917 ) # a lot like normal mode
926 '?' => "g4 ext vim6",
927 '^a'=> 'g4 undo vim8 ext new',
929 'J' => 'g4 ext vim6',
930 'q' => "g4 ext vim6",
932 'w' => 'g4 ext vim7 new',
933 '^x'=> 'g4 undo vim8 ext new',
942 "'" => 'g2 ext vim7 new',
944 '<' => 'g2 ext vim6',
946 '[' => 'g2 ext vim6',
952 'b' => 'g2 ext vim6',
953 'B' => 'g2 ext vim6',
954 'p' => 'g2 ext vim6',
955 's' => 'g2 ext vim6',
956 't' => 'g2 ext vim7 new',
957 'w' => 'g2 ext vim6',
958 'W' => 'g2 ext vim6',
962 # desc => "command-line mode",
978 # '^r' => "=i^r", # and then some...
979 # ## ["g4 arg ext vim6"],
991 '^^' => "g4 ext vim6",
993 '^]' => "g4 ext vim6",
994 '^_' => "g4 ext vim6",
997 '^a' => "g4 ext vim6",
998 '^b' => "no ext vim6",
1001 '^e' => "g4 ext vim6",
1003 '^g' => "g9 modei^g arg",
1007 '^k' => 'g4 arg arg ext vim6 linkdigraphs',
1008 '^l' => "g7 mode ext vim6", # insertmode only
1010 '^n' => "g2 ext vim6",
1012 '^p' => "g2 ext vim6",
1013 '^q' => "=^q", # or i^v
1014 '^r' => 'g4 arg ext vim6',
1018 '^v' => 'g4 linkcharset',
1020 '^x' => 'g9 arg modei^x ext vim6',
1021 '^y' => "g4 ext vim6",
1022 '^z' => "g1 ext vim6", # insertmode only
1033 'U' => 'g4 vim8 ext new',
1034 # other keys (even esc) are not recognized
1040 "\e" => "g7 mode", # yes, it really leaves insert mode
1051 '^o' => 'g4 ext vim7 new',
1056 '^u' => 'g4 ext vim7 new',
1061 # TODO: mode/ (command-line)
1062 # XXX ex mode if you want to go completely wild