vi: describe functionality of g^g in visual mode
[sheet.git] / vi.eng.inc.pl
1 use utf8;
2
3 {
4 key => {
5
6         "\e"=> "normal mode",
7         '~' => "case toggle",
8         '!' => "filt<>er lines",
9         '@' => "play macro",
10         '#' => "rev. find word",
11         '$' => "eol",
12         '%' => "goto match",
13         '^' => '"soft" bol',
14         '&' => ":s rep<>eat",
15         '*' => "find word",
16         '(' => "begin senten<>ce",
17         ')' => "end senten<>ce",
18         '_' => '"soft" bol down',
19         '+' => "next line",
20         '`' => "goto mark",
21         '0' => '"hard" bol',
22         '^^'=> "edit alt. file",
23         '-' => "prev line",
24         '=' => "re<>ind<>ent",
25         '?' => "find rev.",
26         ';' => "repeat t/f/T/F",
27         ':' => "ex cmd line",
28         "'" => "goto mark bol",
29         '"' => "use reg<>ister",
30         '\\' => "reser<>ved",
31         '^\\' => "to mode/<>ext<>ens<>ion<>s",
32         ',' => "reverse t/T/f/F",
33         '<' => "un<>ind<>ent",
34         '.' => "repeat last cmd",
35         '>' => "ind<>ent",
36         '/' => "find",
37         '[' => "move back<>ward<>s",
38         '{' => "begin parag.",
39         ']' => "move forw<>ard",
40         '}' => "end parag.",
41         '^]'=> "go to tag",
42         '|' => "goto (1st) col",
43
44         'a' => "app<>end",
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>',
49         '^b'=> "page up",
50         'c' => "chan<>ge",
51         'C' => "chan<>ge to eol",
52         '^c'=> "abort",
53         'd' => "del<>ete",
54         'D' => "delete to eol",
55         '^d'=> "scroll down",
56         'e' => "end word",
57         'E' => 'end <span style="font-variant:small-caps">word</span>',
58         '^e'=> "window down\nExtra line",
59         'f' => "fwd to char",
60         'F' => "back<>wd to char",
61         '^f'=> "page down\npage Forward",
62         'g' => "extra cmds",
63         'G' => "eof/<>goto ln",
64         '^g'=> ":file (info)",
65         'h' => "<left>",
66         'H' => "screen top\nHome row",
67         'i' => "insert mode",
68         'I' => "insert at bol",
69         '^i'=> "jump to newer\nIncrease position",
70         'j' => "<down>",
71         'J' => "join lines",
72         'k' => "<up>",
73         'K' => "help\nlooKup Keyword",
74         'l' => "<right>",
75         'L' => "screen bottom\nLowermost Line",
76         '^l'=> "redraw",
77         'm' => "set mark",
78         'M' => "screen mid<>dle",
79         'n' => "next find",
80         'N' => "prev find",
81         'o' => "line below\nOpen",
82         'O' => "line above",
83         '^o'=> "jump to older",
84         'p' => "paste after",
85         'P' => "paste before",
86         'q' => "rec<>ord macro\nQueue seQuence",
87         'Q' => "ex mode",
88         '^q'=> "(xon)\nQome back",
89         'r' => "repl<>ace char",
90         'R' => "repl<>ace mode",
91         '^r'=> "redo",
92         's' => "subst char",
93         'S' => "subst line",
94         '^s'=> "(xoff)\nStop",
95         't' => "till char",
96         'T' => "back till char",
97         '^t'=> "back tag", # backtrag :P
98         'u' => "undo",
99         'U' => "undo line",
100         '^u'=> "scroll up",
101         'v' => "visual mode",
102         'V' => "visual lines",
103         '^v'=> "visual block",
104         'w' => "next word",
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)",
111         'Y' => "yank line",
112         '^y'=> "window up\nYield",
113         'z' => "extra cmds",
114         'Z' => "quit",
115         '^z'=> ":sus<>pend\nzzz (as in sleep)",
116
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",
138
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         'go' => ":goto (byte)",
159         'gp' => "paste still",
160         'gP' => "paste before still",
161         'gq' => "for<>mat",
162         'gQ' => "ex mode manual :",
163         'gr' => "virt. repl<>ace char",
164         'gR' => "virt. repl<>ace mode",
165         'gs' => "sleep\nGo to Sleep",
166         'gt' => "next tab\nGoto Tab",
167         'gT' => "tab back",
168         'gu' => "lower<>case",
169         'gU' => "up<>per<>case",
170         'gv' => "prev<>ious highl<>ight\nprecedinG Visual",
171         'gV' => "avoid resel<>ect<>ion",
172         'gw' => "for<>mat still",
173         'gx' => "Netrw<>BrowseX",
174
175         "Z\e"=> "normal mode",
176         'ZQ' => " :q! (force)",
177         'ZZ' => " :wq (write)",
178
179         'z^' => "page above",
180         'z+' => "page below",
181         'z-' => "line at bottom bol\ndon't (-) see any further",
182         'z=' => "sug<>gest spell<>ing",
183         'z.' => "line at center bol",
184         "z\e"=> "normal mode",
185
186         'za' => "toggle fold",
187         'zA' => "toggle fold rec<>urs<>ive<>ly",
188         'zb' => "line at bot. bol",
189         'zc' => "close fold",
190         'zC' => "close folds rec<>curs<>ive<>ly",
191         'zd' => "delete fold",
192         'zD' => "delete folds rec<>urs<>ive",
193         'ze' => "cursor at right side",
194         'zE' => "elimi<>nate f<>olds",
195         'zf' => "create fold",
196         'zF' => "fold lines",
197         'zg' => "add spell<>ing\nGood word",
198         'zG' => "temp spell<>ing",
199         'zh' => "scroll <left>",
200         'zH' => "scroll <left> half scr<>een",
201         'zi' => "toggle all folds",
202         'zj' => "next fold start",
203         'zk' => "prev fold end",
204         'zl' => "scroll <right>",
205         'zL' => "scroll <right> half scr<>een",
206         'z^m'=> "line at top bol",
207         'zm' => "fold more",
208         'zM' => "close all folds",
209         'zn' => "fold none",
210         'zN' => "fold norm<>al",
211         'zo' => "open fold",
212         'zO' => "open folds rec<>urs<>ive<>ly",
213         'zr' => "reduce folding",
214         'zR' => "open all folds",
215         'zs' => "cursor at left side",
216         'zt' => "line at top",
217         'zu' => "undo spell<>ing",
218         'zv' => "unfold cursor line",
219         'zw' => "add missp<>ell<>ing\nWrong word",
220         'zW' => "temp missp<>ell<>ing",
221         'zx' => "update folds",
222         'zX' => "re<>apply f<>olds",
223         'zz' => "line at center\nZee Zenter (with a funny accent)",
224
225         "[`" => "previous lc mark",
226         '[#' => "previous open #if<>/#else",
227         '[(' => "previous open (",
228         '[/' => "start of C com<>m<>ent",
229         '[{' => "previous open {",
230         '[[' => "section back<>ward<>s",
231         "[\e"=> "normal mode",
232         '[]' => qq'<span style="font-variant:small-caps">section</span> back<>ward<>s',
233
234         '[c' => "start of change backw<>ards",
235         '[d' => "define line",
236         '[D' => "defin<>ition",
237         '[^d'=> "to defin<>it<>ion",
238         '[i' => "first occur<>renc<>e line",
239         '[I' => "first occur<>renc<>e",
240         '[^i'=> "to first occur<>renc<>e",
241         '[m' => "start of funct<>ion",
242         '[p' => "P reind<>ent<>ed",
243         '[P' => "[p",
244         '[s' => "last missp<>ell<>ing",
245         '[S' => "last bad word",
246         '[z' => "start of open fold",
247
248         "]`" => "next lc mark",
249         ']#' => "next open #endif<>/#else",
250         '])' => "next open )",
251         ']/' => "end of C com<>m<>ent",
252         '][' => qq'<span style="font-variant:small-caps">section</span> forw<>ard',
253         "]\e"=> "normal mode",
254         ']]' => "section forw<>ard",
255         ']}' => "next open }",
256
257         ']c' => "start of change forw<>ards",
258         ']d' => "next define line",
259         ']D' => "next define",
260         ']^d'=> "to next define",
261         ']i' => "next occur<>renc<>e line",
262         ']I' => "next occur<>renc<>e",
263         ']^i'=> "to occur<>renc<>e",
264         ']m' => "end of funct<>ion",
265         ']p' => "p reind<>ent<>ed",
266         ']s' => "next missp<>ell<>ing",
267         ']S' => "next bad word",
268         ']z' => "end of open fold",
269
270         '^w<' => "width decr<>ease",
271         '^w>' => "width incr<>ease",
272         '^w^' => "split, edit alt file",
273         '^w_' => "set height",
274         '^w+' => "height incr<>ease",
275         '^w-' => "height decr<>ease",
276         '^w=' => "same height",
277         "^w\e"=> "normal mode",
278         '^w]' => "split, to tag",
279         '^w}' => "pre<>view tag",
280         '^w|' => "set width",
281
282         '^wb' => "go to bot<>tom",
283         '^wc' => ":close",
284         '^w^c'=> "abort",
285         '^wd' => "split, to def<>inition",
286         '^wf' => "split, file edit",
287         '^wF' => "^wf, jump to line",
288         '^wg' => "extra cmds",
289         '^wh' => "go left",
290         '^wH' => "move far left",
291         '^wi' => "split, to decl of id<>ent<>ifier",
292         '^wj' => "go down",
293         '^wJ' => "move to bottom",
294         '^wk' => "go up",
295         '^wK' => "move to top",
296         '^wl' => "go right",
297         '^wL' => "move far right",
298         '^wn' => "open new",
299         '^wo' => ":only current",
300         '^wp' => "go to prev<>ious",
301         '^wP' => "go to pre<>view",
302         '^wq' => ":quit current",
303         '^wr' => "rotate down<>ward<>s",
304         '^wR' => "rotate up<>ward<>s",
305         '^ws' => "split horiz<>ont<>al<>ly",
306         '^wt' => "go to top",
307         '^wv' => "split vert<>ic<>al<>ly",
308         '^ww' => "go to next\nWrap around",
309         '^wW' => "go above<>/left",
310         '^wx' => "ex<>chan<>ge",
311         '^wz' => "close pre<>view",
312
313         "^wg\e"=> "normal mode",
314         '^wg]' => "split, :ts<>elect",
315         '^wg}' => ":ptj<>ump to tag",
316         '^wg^]'=> "split, :tj<>ump",
317         '^wgf' => "file in tab",
318         '^wgF' => "^wgf, to line<>nr",
319
320         'v!' => "external filter",
321         'v:' => "cmd on range",
322         'v<' => "un<>indent",
323         'v=' => "re<>ind<>ent",
324         'v>' => "ind<>ent",
325         'v~' => "toggle case",
326         "v\e"=> "normal mode",
327         'v^]'=> "jump to tag",
328
329         'va' => "ex<>tend area",
330         'vA' => "ap<>pend to block", # block
331         'vc' => "repl<>ace area",
332         'vC' => "repl<>ace full lines", # like vS, but blocks are extended until eol
333         'v^c'=> "abort",
334         'vd' => "delete area",
335         'vD' => "delete lines",
336         'vg' => "extra cmds",
337         'v^g'=> "select mode",
338         'v^h'=> "back<>space", # delete in select mode, left otherwise
339         'vi' => "extend inner a<>r<>ea",
340         'vI' => "insert to block", # block
341         'vJ' => "join lines",
342         'vK' => "help sel<>ect<>ion",
343         'vo' => "to other corner",
344         'vO' => "to other side",
345         'v^o'=> "visual once", # select
346         'vp' => "repl<>ace w/ paste",
347         'vP' => "repl<>ace w/ paste",
348         'vr' => "fill up w/ ch<>ar",
349         'vS' => "repl<>ace lines",
350         'vu' => "lower<>case",
351         'vU' => "upper<>case",
352         'vv' => "char<>wise",
353         'vV' => "line<>wise",
354         'v^v'=> "block<>wise",
355         'vy' => "yank area",
356         'vY' => "yank lines",
357
358         "vg\e"=> "visual mode",
359         'vg?' => "rot13 encode",
360         'vg^g'=> "count region info",
361         'vgJ' => "join literal<>ly",
362         'vgq' => "for<>mat",
363         'vgw' => "for<>mat still",
364
365         "va'" => "quoted string",
366         'va<' => "&lt;&gt; block",
367         'va[' => "[] block",
368         "va\e"=> "visual mode",
369
370         'vab' => "() block",
371         'vaB' => "{} Block",
372         'vap' => "para<>graph",
373         'vas' => "senten<>ce",
374         'vat' => "xml tag block",
375         'vaw' => "word",
376         'vaW' => '<span style="font-variant:small-caps">word</span>',
377
378 #       'c^a' => "complete", #todo
379 #       'c^b' => "bol",
380 #       'c^d' => "complete", #todo
381 #       'c^e' => "eol",
382 #       'c^j' => "execute cmd",
383 #       'c^l' => "complete", #todo
384 #       'c^n' => "complete", #todo
385 #       'c^p' => "complete", #todo
386 #       'c^r' => \'i^r', # and then some...
387 #             ## "insert register",
388 #       'c^y' => "selec<>tion to clip<>b<>oard",
389
390         'i^@' => "last insert",
391         'i^^' => "toggle :lmap usag<>e",
392         "i\e" => "normal mode",
393         'i^]' => "abbrev<>iate",
394         'i^_' => "toggle lang<>uage",
395
396         'i^a' => "insert prev<>ious",
397         'i^b' => "former i^_",
398         'i^c' => "abort, no abbr",
399         'i^d' => "un<>ind<>ent",
400         'i^e' => "ins char below",
401         'i^f' => "set indent<>ation",
402         'i^g' => "extra cmds",
403         'i^h' => "back<>space",
404         'i^i' => "tab",
405         'i^j' => "enter",
406         'i^k' => "di<>graph\nKey code",
407         'i^l' => "<em>im</em> leave ins mode",
408         'i^m' => "enter",
409         'i^n' => "find next keyword",
410         'i^o' => "exec<>ute cmd",
411         'i^p' => "find prev keyword",
412         'i^r' => "insert reg<>ister",
413         'i^t' => "indent",
414         'i^u' => "delete line",
415         'i^v' => "literal or ch<>ar<>cod<>e\nVerbatim or by Value",
416         'i^w' => "delete word back",
417         'i^x' => "ex<>pand mode",
418         'i^y' => "ins char above",
419         'i^z' => ":sus<>pend in <em>im</em>",
420
421         "i^g\e"=> "insert mode",
422         'i^gk' => "<up> start col<>umn",
423         'i^gj' => "<down> start col<>umn",
424         'i^gu' => "break undo seq<>uence",
425         # other i^g keys (even esc) are not recognized
426
427         "i^x\e" => "normal mode",
428         'i^x^]' => "tag comp<>l<>et<>e",
429         'i^x^d' => "def<>ine compl<>et<>e",
430         'i^x^e' => "window up",
431         'i^x^f' => "file comp<>l<>et<>e",
432         'i^x^i' => "ident comp<>l<>et<>e",
433         'i^x^k' => "dict comp<>l<>et<>e",
434         'i^x^l' => "line comp<>l<>et<>e",
435         'i^x^n' => "next comp<>l<>et<>e",
436         'i^x^o' => "omni comp<>l<>et<>e",
437         'i^x^p' => "prev comp<>l<>ete",
438         'i^x^s' => "spell sugg<>est",
439         'i^x^t' => "thes<>aur<>us compl<>et<>e",
440         'i^x^u' => "cus<>tom comp<>l<>et<>e",
441         'i^x^v' => "ex cmd compl<>et<>e",
442         'i^x^y' => "window down",
443
444         # XXX ex mode if you want to go completely wild
445 },
446
447 mode => {
448         ''    => "normal mode",
449          g    => "extended commands (g)",
450          Z    => "quit commands",
451          z    => "additional commands (z)",
452         '['   => "backward search commands ([)",
453         ']'   => "forward search commands (])",
454         '^w'  => "window commands (ctrl-w)",
455         '^wg' => "extended window commands (ctrl-w g)",
456          v    => "visual mode",
457          vg   => "extended visual commands (v g)",
458          va   => "text object selection (v a/i)",
459 #        c    => "command-line mode",
460          i    => "insert mode",
461         'i^g' => "extended insert commands (i ctrl-g)",
462         'i^x' => "insert completion commands (i ctrl-x)",
463 },
464
465 flag => {
466         g1 => ["info", "Info command: shows/does something without altering anything."],
467         g2 => ["motion", "Moves the cursor, or defines the range for an operator (<motion>)."],
468         g3 => ["positioning", "Other movement (jumps, window (re)positioning)."],
469         g4 => ["command", "Direct action command."],
470         g6 => ["ins mode", "Enters Insert or Replace mode."],
471         g7 => ["mode", "Enters a different mode."],
472         g8 => ["vis mode", "Enters Visual or Select mode."],
473         g9 => ["key cmd", "Additional key commands (click for overview)."],
474
475         arg => ["key<arg>", "Commands with a dot need a char argument afterwards."],
476         motion => ["key<motion>", "Requires a motion afterwards, operates between cursor and destination."],
477         'ext vim6' => ["vim", "Not in original Vi (assessment incomplete)."],
478         'ext new vim7' => ["vim7", "New in vim version 7.x."],
479 },
480
481 }