|
|
1.1 root 1: Info file ../info/vip, produced by Makeinfo, -*- Text -*- from input
2: file vip.texinfo.
3:
4: Distribution
5: ************
6:
7: Copyright (C) 1987 Masahiko Sato.
8:
9: Permission is granted to make and distribute verbatim copies of this
10: manual provided the copyright notice and this permission notice are
11: preserved on all copies.
12:
13: Permission is granted to copy and distribute modified versions of
14: this manual under the conditions for verbatim copying, provided that
15: the entire resulting derived work is distributed under the terms of a
16: permission notice identical to this one.
17:
18: Permission is granted to copy and distribute translations of this
19: manual into another language, under the same conditions as for
20: modified versions.
21:
22:
23:
24: File: vip, Node: Top, Next: Survey, Up: (DIR)
25:
26: VIP ***
27:
28: VIP is a Vi emulating package written in Emacs Lisp. VIP implements
29: most Vi commands including Ex commands. It is therefore hoped that
30: this package will enable you to do Vi style editing under the
31: powerful GNU Emacs environment. This info file describes the usage
32: of VIP assuming that you are fairly accustomed to Vi but not so much
33: with Emacs. Also we will concentrate mainly on differences from Vi,
34: especially features unique to VIP.
35:
36: It is recommended that you read nodes on survey and on customization
37: before you start using VIP. Other nodes may be visited as needed.
38:
39: Comments and bug reports are welcome. Please send messages to
40: `[email protected]' if you are outside of Japan and to
41: `[email protected]' if you are in Japan.
42:
43: * Menu:
44:
45: * Survey:: A survey of VIP.
46: * Vi Commands:: Details of Vi commands.
47: * Ex Commands:: Details of Ex commands.
48: * Customization:: How to customize VIP.
49:
50:
51:
52: File: vip, Node: Survey, Next: Basic Concepts, Prev: Top, Up: Top
53:
54: A Survey of VIP
55: ***************
56:
57: In this chapter we describe basics of VIP with emphasis on the
58: features not found in Vi and on how to use VIP under GNU Emacs.
59:
60: * Menu:
61:
62: * Basic Concepts:: Basic concepts in Emacs.
63: * Loading VIP:: How to load VIP automatically.
64: * Modes in VIP:: VIP has three modes, which are orthogonal to modes
65: in Emacs.
66: * Differences from Vi:: Differences of VIP from Vi is explained.
67:
68:
69:
70: File: vip, Node: Basic Concepts, Next: Loading VIP, Prev: Survey, Up: Survey
71:
72: Basic Concepts
73: ==============
74:
75: We begin by explaining some basic concepts of Emacs. These concepts
76: are explained in more detail in the GNU Emacs Manual.
77:
78: Conceptually, a "buffer" is just a string of ASCII characters and two
79: special characters PNT ("point") and MRK ("mark") such that the
80: character PNT occurs exactly once and MRK occurs at most once. The
81: "text" of a buffer is obtained by deleting the occurrences of PNT and
82: MRK. If, in a buffer, there is a character following PNT then we say
83: that point is "looking at" the character; otherwise we say that point
84: is "at the end of buffer". PNT and MRK are used to indicate
85: positions in a buffer and they are not part of the text of the
86: buffer. If a buffer contains a MRK then the text between MRK and PNT
87: is called the "region" of the buffer.
88:
89: Emacs provides (multiple) "windows" on the screen, and you can see
90: the content of a buffer through the window associated with the
91: buffer. The cursor of the screen is always positioned on the
92: character after PNT.
93:
94: A "keymap" is a table that records the bindings between characters
95: and command functions. There is the "global keymap" common to all
96: the buffers. Each buffer has its "local keymap" that determines the
97: "mode" of the buffer. Local keymap overrides global keymap, so that
98: if a function is bound to some key in the local keymap then that
99: function will be executed when you type the key. If no function is
100: bound to a key in the local map, however, the function bound to the
101: key in the global map becomes in effect.
102:
103:
104:
105: File: vip, Node: Loading VIP, Next: Modes in VIP, Prev: Basic Concepts, Up: Survey
106:
107: Loading VIP
108: ===========
109:
110: The recommended way to load VIP automatically is to include the line:
111:
112: (load "vip")
113:
114: in your `.emacs' file. The `.emacs' file is placed in your home
115: directory and it will be executed every time you invoke Emacs. If
116: you wish to be in vi mode whenver Emacs starts up, you can include
117: the following line in your `.emacs' file instead of the above line:
118:
119: (setq term-setup-hook 'vip-mode)
120:
121: (*Note Vi Mode::, for the explanation of vi mode.)
122:
123: Even if your `.emacs' file does not contain any of the above lines,
124: you can load VIP and enter vi mode by typing the following from
125: within Emacs.
126:
127: M-x vip-mode
128:
129:
130:
131: File: vip, Node: Modes in VIP, Next: Emacs Mode, Prev: Loading VIP, Up: Survey
132:
133: Modes in VIP
134: ============
135:
136: Loading VIP has the effect of globally binding `C-z' (`Control-z') to
137: the function `vip-change-mode-to-vi'. The default binding of `C-z' in
138: GNU Emacs is `suspend-emacs', but, you can also call `suspend-emacs'
139: by typing `C-x C-z'. Other than this, all the key bindings of Emacs
140: remain the same after loading VIP.
141:
142: Now, if you hit `C-z', the function `vip-change-mode-to-vi' will be
143: called and you will be in "vi mode". (Some major modes may locally
144: bind `C-z' to some special functions. In such cases, you can call
145: `vip-change-mode-to-vi' by `execute-extended-command' which is
146: invoked by `M-x'. Here `M-x' means `Meta-x', and if your terminal
147: does not have a META key you can enter it by typing `ESC x'. The
148: same effect can also be achieve by typing `M-x vip-mode'.)
149:
150: You can observe the change of mode by looking at the "mode line".
151: For instance, if the mode line is:
152:
153: -----Emacs: *scratch* (Lisp Interaction)----All------------
154:
155: then it will change to:
156:
157: -----Vi: *scratch* (Lisp Interaction)----All------------
158:
159: Thus the word `Emacs' in the mode line will change to `Vi'.
160:
161: You can go back to the original "emacs mode" by typing `C-z' in vi
162: mode. Thus `C-z' toggles between these two modes.
163:
164: Note that modes in VIP exist orthogonally to modes in Emacs. This
165: means that you can be in vi mode and at the same time, say, shell mode.
166:
167: Vi mode corresponds to Vi's command mode. From vi mode you can enter
168: "insert mode" (which corresponds to Vi's insert mode) by usual Vi
169: command keys like `i', `a', `o' ... etc.
170:
171: In insert mode, the mode line will look like this:
172:
173: -----Insert *scratch* (Lisp Interaction)----All------------
174:
175: You can exit from insert mode by hitting ESC key as you do in Vi.
176:
177: That VIP has three modes may seem very complicated, but in fact it is
178: not so. VIP is implemented so that you can do most editing remaining
179: only in the two modes for Vi (that is vi mode and insert mode).
180:
181: The figure below shows the transition of three modes in VIP.
182:
183:
184:
185: === C-z ==> == i,o ... ==>
186: emacs mode vi mode insert mode
187: <== X-z === <=== ESC ====
188:
189: * Menu:
190:
191: * Emacs Mode:: This is the mode you should know better.
192: * Vi Mode:: Vi commands are executed in this mode.
193: * Insert Mode:: You can enter text, and also can do editing if you
194: know enough Emacs commands.
195:
196:
197:
198: File: vip, Node: Emacs Mode, Next: Vi Mode, Prev: Modes in VIP, Up: Modes in VIP
199:
200: Emacs Mode
201: ----------
202:
203: You will be in this mode just after you loaded VIP. You can do all
204: normal Emacs editing in this mode. Note that the key `C-z' is
205: globally bound to `vip-change-mode-to-vi'. So, if you type `C-z' in
206: this mode then you will be in vi mode.
207:
208:
209:
210: File: vip, Node: Vi Mode, Next: Insert Mode, Prev: Emacs Mode, Up: Modes in VIP
211:
212: Vi Mode
213: -------
214:
215: This mode corresponds to Vi's command mode. Most Vi commands work as
216: they do in Vi. You can go back to emacs mode by typing `C-z'. You
217: can enter insert mode, just as in Vi, by typing `i', `a' etc.
218:
219:
220:
221: File: vip, Node: Insert Mode, Next: Differences from Vi, Prev: Vi Mode, Up: Modes in VIP
222:
223: Insert Mode
224: -----------
225:
226: The key bindings in this mode is the same as in the emacs mode except
227: for the following 4 keys. So, you can move around in the buffer and
228: change its content while you are in insert mode.
229:
230: `ESC'
231: This key will take you back to vi mode.
232:
233: `C-h'
234: Delete previous character.
235:
236: `C-w'
237: Delete previous word.
238:
239: `C-z'
240: Typing this key has the same effect as typing ESC in emacs mode.
241: Thus typing `C-z x' in insert mode will have the same effect as
242: typing `ESC x' in emacs mode.
243:
244:
245:
246: File: vip, Node: Differences from Vi, Next: Undoing, Prev: Insert Mode, Up: Survey
247:
248: Differences from Vi
249: ===================
250:
251: The major differences from Vi are explained below.
252:
253: * Menu:
254:
255: * Undoing:: You can undo more in VIP.
256: * Changing:: Commands for changing the text.
257: * Searching:: Search commands.
258: * z Command:: You can now use zH, zM and zL as well as z- etc.
259: * Counts:: Some Vi commands which do not accept a count now
260: accept one.
261: * Marking:: You can now mark the current point, beginning of
262: the buffer etc.
263: * Region Commands:: You can now give a region as an argument for delete
264: commands etc.
265: * New Commands:: Some new commands not available in Vi are added.
266: * New Bindings:: Bindings of some keys are changed for the
267: convenience of editing under Emacs.
268: * Window Commands:: Commands for moving among windows etc.
269: * Buffer Commands:: Commands for selecting buffers etc.
270: * File Commands:: Commands for visiting files etc.
271: * Misc Commands:: Other useful commands.
272:
273:
274:
275: File: vip, Node: Undoing, Next: Changing, Prev: Differences from Vi, Up: Differences from Vi
276:
277: Undoing
278: -------
279:
280: You can repeat undoing by the `.' key. So, `u' will undo a single
281: change, while `u . . .', for instance, will undo 4 previous changes.
282: Undo is undoable as in Vi. So the content of the buffer will be the
283: same before and after `u u'.
284:
285:
286:
287: File: vip, Node: Changing, Next: Searching, Prev: Undoing, Up: Differences from Vi
288:
289: Changing
290: --------
291:
292: Some commands which change a small number of characters are executed
293: slightly differently. Thus, if point is at the beginning of a word
294: `foo' and you wished to change it to `bar' by typing `c w', then VIP
295: will prompt you for a new word in the minibuffer by the prompt `foo
296: => '. You can then enter `bar' followed by RET or ESC to complete
297: the command. Before you enter RET or ESC you can abort the command
298: by typing `C-g'. In general, you can abort a partially formed
299: command by typing `C-g'.
300:
301:
302:
303: File: vip, Node: Searching, Next: z Command, Prev: Changing, Up: Differences from Vi
304:
305: Searching
306: ---------
307:
308: As in Vi, searching is done by `/' and `?'. The string will be
309: searched literally by default. To invoke a regular expression
310: search, first execute the search command `/' (or `?') with empty
311: search string. (I.e, type `/' followed by RET.) A search for empty
312: string will toggle the search mode between vanilla search and regular
313: expression search. You cannot give an offset to the search string.
314: (It is a limitation.) By default, search will wrap around the buffer
315: as in Vi. You can change this by rebinding the variable
316: `vip-search-wrap-around'. *Note Customization::, for how to do this.
317:
318:
319:
320: File: vip, Node: z Command, Next: Counts, Prev: Searching, Up: Differences from Vi
321:
322: z Command
323: ---------
324:
325: For those of you who cannot remember which of `z' followed by RET,
326: `.' and `-' do what. You can also use `z' followed by `H', `M' and
327: `L' to place the current line in the Home (Middle, and Last) line of
328: the window.
329:
330:
331:
332: File: vip, Node: Counts, Next: Marking, Prev: z Command, Up: Differences from Vi
333:
334: Counts
335: ------
336:
337: Some Vi commands which do not accept a count now accept one
338:
339: `p'
340: `P'
341: Given counts, text will be yanked (in Vi's sense) that many
342: times. Thus `3 p' is the same as `p p p'.
343:
344: `o'
345: `O'
346: Given counts, that many copies of text will be inserted. Thus `o
347: a b c ESC' will insert 3 lines of `abc' below the current line.
348:
349: `/'
350: `?'
351: Given a count N, N-th occurrence will be searched.
352:
353:
354:
355: File: vip, Node: Marking, Next: Region Commands, Prev: Counts, Up: Differences from Vi
356:
357: Marking
358: -------
359:
360: Typing an `m' followed by a lower case character CH marks the point
361: to the register named CH as in Vi. In addition to these, we have
362: following key bindings for marking.
363:
364: `m <'
365: Set mark at the beginning of buffer.
366:
367: `m >'
368: Set mark at the end of buffer.
369:
370: `m .'
371: Set mark at point (and push old mark on mark ring).
372:
373: `m ,'
374: Jump to mark (and pop mark off the mark ring).
375:
376:
377:
378: File: vip, Node: Region Commands, Next: New Commands, Prev: Marking, Up: Differences from Vi
379:
380: Region Commands
381: ---------------
382:
383: Vi operators like `d', `c' etc. are usually used in combination with
384: motion commands. It is now possible to use current region as the
385: argument to these operators. (A "region" is a part of buffer
386: delimited by point and mark.) The key `r' is used for this purpose.
387: Thus `d r' will delete the current region. If `R' is used instead of
388: `r' the region will first be enlarged so that it will become the
389: smallest region containing the original region and consisting of
390: whole lines. Thus `m . d R' will have the same effect as `d d'.
391:
392:
393:
394: File: vip, Node: New Commands, Next: New Bindings, Prev: Region Commands, Up: Differences from Vi
395:
396: Some New Commands
397: -----------------
398:
399: Note that the keys below (except for `R') are not used in Vi.
400:
401: `C-a'
402: Move point to the beginning of line.
403:
404: `C-n'
405: If you have two or more windows in the screen, this key will
406: move point to the next window.
407:
408: `C-o'
409: Insert a newline and leave point before it, and then enter
410: insert mode.
411:
412: `C-r'
413: Backward incremental search.
414:
415: `C-s'
416: Forward incremental search.
417:
418: `C-c'
419: `C-x'
420: `ESC'
421: These keys will exit from vi mode and return to emacs mode
422: temporarily. If you hit one of these keys, Emacs will be in
423: emacs mode and will believe that you hit that key in emacs mode.
424: For example, if you hit `C-x' followed by `2', then the current
425: window will be split into 2 and you will be in vi mode again.
426:
427: `\'
428: Escape to emacs mode. Hitting `\' will take you to emacs mode,
429: and you can execute a single Emacs command. After executing the
430: Emacs command you will be in vi mode again. You can give a
431: count before typing `\'. Thus `5 \ *', as well as `\ C-u 5 *',
432: will insert `*****' before point. Similarly `1 0 \ C-p' will
433: move the point 10 lines above the current line.
434:
435: `K'
436: Kill current buffer if it is not modified. Useful when you
437: selected a buffer which you did not want.
438:
439: `Q'
440: `R'
441: `Q' is for query replace and `R' is for replace. By default,
442: string to be replaced are treated literally. If you wish to do
443: a regular expression replace, first do replace with empty string
444: as the string to be replaced. In this way, you can toggle
445: between vanilla and regular expression replacement.
446:
447: `v'
448: `V'
449: These keys are used to Visit files. `v' will switch to a buffer
450: visiting file whose name can be entered in the minibuffer. `V'
451: is similar, but will use window different from the current window.
452:
453: `#'
454: If followed by a certain character CH, it becomes an operator
455: whose argument is the region determined by the motion command
456: that follows. Currently, CH can be one of `c', `C', `g', `q'
457: and `s'.
458:
459: `# c'
460: Change upper case characters in the region to lower case
461: (`downcase-region').
462:
463: `# C'
464: Change lower case characters in the region to upper case. For
465: instance, `# C 3 w' will capitalize 3 words from the current
466: point (`upcase-region').
467:
468: `# g'
469: Execute last keyboard macro for each line in the region
470: (`vip-global-execute').
471:
472: `# q'
473: Insert specified string at the beginning of each line in the
474: region (`vip-quote-region').
475:
476: `# s'
477: Check spelling of words in the region (`spell-region').
478:
479: `*'
480: Call last keyboard macro.
481:
482:
483:
484: File: vip, Node: New Bindings, Next: Window Commands, Prev: New Commands, Up: Differences from Vi
485:
486: New Key Bindings
487: ----------------
488:
489: In VIP the meanings of some keys are entirely different from Vi.
490: These key bindings are done deliberately in the hope that editing
491: under Emacs will become easier. It is however possible to rebind
492: these keys to functions which behave similarly as in Vi. *Note
493: Customizing Key Bindings::, for details.
494:
495: `C-g'
496: `g'
497: In Vi, `C-g' is used to get information about the file
498: associated to the current buffer. Here, `g' will do that, and
499: `C-g' is used to abort a command (this is for compatibility with
500: emacs mode.)
501:
502: `SPC'
503: `RET'
504: Now these keys will scroll up and down the text of current window.
505: Convenient for viewing the text.
506:
507: `s'
508: `S'
509: They are used to switch to a specified buffer. Useful for
510: switching to already existing buffer since buffer name
511: completion is provided. Also a default buffer will be given as
512: part of the prompt, to which you can switch by just typing RET
513: key. `s' is used to select buffer in the current window, while
514: `S' selects buffer in another window.
515:
516: `C'
517: `X'
518: These keys will exit from vi mode and return to emacs mode
519: temporarily. If you type `C' (`X'), Emacs will be in emacs mode
520: and will believe that you have typed `C-c' (`C-x', resp.) in
521: emacs mode. Moreover, if the following character you type is an
522: upper case letter, then Emacs will believe that you have typed
523: the corresponding control character. You will be in vi mode
524: again after the command is executed. For example, typing `X S'
525: in vi mode is the same as typing `C-x C-s' in emacs mode. You
526: get the same effect by typing `C-x C-s' in vi mode, but the idea
527: here is that you can execute useful Emacs commands without
528: typing control characters. For example, if you hit `X' (or
529: `C-x') followed by `2', then the current window will be split
530: into 2 and you will be in vi mode again.
531:
532: In addition to these, `ctl-x-map' is slightly modified:
533:
534: `X 3'
535: `C-x 3'
536: This is equivalent to `C-x 1 C-x 2' (1 + 2 = 3).
537:
538:
539:
540: File: vip, Node: Window Commands, Next: Buffer Commands, Prev: New Bindings, Up: Differences from Vi
541:
542: Window Commands
543: ---------------
544:
545: In this and following subsections, we give a summary of key bindings
546: for basic functions related to windows, buffers and files.
547:
548: `C-n'
549: Switch to next window.
550:
551: `X 1'
552: `C-x 1'
553: Delete other windows.
554:
555: `X 2'
556: `C-x 2'
557: Split current window into two windows.
558:
559: `X 3'
560: `C-x 3'
561: Show current buffer in two windows.
562:
563:
564:
565: File: vip, Node: Buffer Commands, Next: File Commands, Prev: Window Commands, Up: Differences from Vi
566:
567: Buffer Commands
568: ---------------
569:
570: `s'
571: Switch to the specified buffer in the current window
572: (`vip-switch-to-buffer').
573:
574: `S'
575: Switch to the specified buffer in another window
576: (`vip-switch-to-buffer-other-window').
577:
578: `K'
579: Kill the current buffer if it is not modified.
580:
581: `X S'
582: `C-x C-s'
583: Save the current buffer in the file associated to the buffer.
584:
585:
586:
587: File: vip, Node: File Commands, Next: Misc Commands, Prev: Buffer Commands, Up: Differences from Vi
588:
589: File Commands
590: -------------
591:
592: `v'
593: Visit specified file in the current window.
594:
595: `V'
596: Visit specified file in another window.
597:
598: `X W'
599: `C-x C-w'
600: Write current buffer into the specified file.
601:
602: `X I'
603: `C-x C-i'
604: Insert specified file at point.
605:
606:
607:
608: File: vip, Node: Misc Commands, Next: Vi Commands, Prev: File Commands, Up: Differences from Vi
609:
610: Miscellaneous Commands
611: ----------------------
612:
613: `X ('
614: `C-x ('
615: Start remembering keyboard macro.
616:
617: `X )'
618: `C-x )'
619: Finish remembering keyboard macro.
620:
621: `*'
622: Call last remembered keyboard macro.
623:
624: `X Z'
625: `C-x C-z'
626: Suspend Emacs.
627:
628: `Z Z'
629: Exit Emacs.
630:
631: `Q'
632: Query replace.
633:
634: `R'
635: Replace.
636:
637:
638:
639: File: vip, Node: Vi Commands, Next: Numeric Arguments, Prev: Misc Commands, Up: Top
640:
641: Vi Commands
642: ***********
643:
644: This chapter describes Vi commands other than Ex commands implemented
645: in VIP. Except for the last section which discusses insert mode, all
646: the commands described in this chapter are to be used in vi mode.
647:
648: * Menu:
649:
650: * Numeric Arguments:: Many commands accept numeric arguments
651: * Important Keys:: Some very important keys.
652: * Buffers and Windows:: Commands for handling buffers and windows.
653: * Files:: Commands for handling files.
654: * Viewing the Buffer:: How you can view the current buffer.
655: * Mark Commands:: Marking positions in a buffer.
656: * Motion Commands:: Commands for moving point.
657: * Modifying Commands:: Commands for modifying the buffer.
658:
659:
660:
661: File: vip, Node: Numeric Arguments, Next: Important Keys, Prev: Vi Commands, Up: Vi Commands
662:
663: Numeric Arguments
664: =================
665:
666: Most Vi commands accept a "numeric argument" which can be supplied as
667: a prefix to the commands. A numeric argument is also called a "count".
668: In many cases, if a count is given, the command is executed that many
669: times. For instance, `5 d d' deletes 5 lines while simple `d d'
670: deletes a line. In this manual the metavariable N will denote a count.
671:
672:
673:
674: File: vip, Node: Important Keys, Next: Buffers and Windows, Prev: Numeric Arguments, Up: Vi Commands
675:
676: Important Keys
677: ==============
678:
679: The keys `C-g' and `C-l' are unique in that their associated
680: functions are the same in any of emacs, vi and insert mode.
681:
682: `C-g'
683: Quit. Cancel running or partially typed command
684: (`keyboard-quit').
685:
686: `C-l'
687: Clear the screen and reprint everything (`recenter').
688:
689: In Emacs many commands are bound to the key strokes that start with
690: `C-x', `C-c' and ESC. These commands can be accessed from vi mode as
691: easily as from emacs mode.
692:
693: `C-x'
694: `C-c'
695: `ESC'
696: Typing one of these keys have the same effect as typing it in
697: emacs mode. Appropriate command will be executed according as
698: the keys you type after it. You will be in vi mode again after
699: the execution of the command. For instance, if you type `ESC <'
700: (in vi mode) then the cursor will move to the beginning of the
701: buffer and you will still be in vi mode.
702:
703: `C'
704: `X'
705: Typing one of these keys have the effect of typing the
706: corresponding control character in emacs mode. Moreover, if you
707: type an upper case character following it, that character will
708: also be translated to the corresponding control character. Thus
709: typing `X W' in vi mode is the same as typing `C-x C-w' in emacs
710: mode. You will be in vi mode again after the execution of a
711: command.
712:
713: `\'
714: Escape to emacs mode. Hitting the `\' key will take you to
715: emacs mode, and you can execute a single Emacs command. After
716: executing the Emacs command you will be in vi mode again. You
717: can give a count before typing `\'. Thus `5 \ +', as well as `\
718: C-u 5 +', will insert `+++++' before point.
719:
720:
721:
722: File: vip, Node: Buffers and Windows, Next: Files, Prev: Important Keys, Up: Vi Commands
723:
724: Buffers and Windows
725: ===================
726:
727: In Emacs the text you edit is stored in a "buffer". See GNU Emacs
728: Manual, for details. There is always one "selected" buffer which is
729: called the "current buffer".
730:
731: You can see the contents of buffers through "windows" created by Emacs.
732: When you have multiple windows on the screen only one of them is
733: selected. Each buffer has a unique name, and each window has a mode
734: line which shows the name of the buffer associated with the window
735: and other information about the status of the buffer. You can change
736: the format of the mode line, but normally if you see `**' at the
737: beginning of a mode line it means that the buffer is "modified". If
738: you write out the content of the buffer to a file, then the buffer
739: will become not modified. Also if you see `%%' at the beginning of
740: the mode line, it means that the file associated with the buffer is
741: write protected.
742:
743: We have the following commands related to windows and buffers.
744:
745: `C-n'
746: Move cursor to the next-window (`vip-next-window').
747:
748: `X 1'
749: Delete other windows and make the selected window fill the screen
750: (`delete-other-windows').
751:
752: `X 2'
753: Split current window into two windows (`split-window-vertically').
754:
755: `X 3'
756: Show current buffer in two windows.
757:
758: `s BUFFER RET'
759: Select or create a buffer named BUFFER (`vip-switch-to-buffer').
760:
761: `S BUFFER RET'
762: Similar but select a buffer named BUFFER in another window
763: (`vip-switch-to-buffer-other-window').
764:
765: `K'
766: Kill the current buffer if it is not modified or if it is not
767: associated with a file
768: (`vip-kill-buffer').
769:
770: `X B'
771: List the existing buffers (`list-buffers').
772:
773: As "buffer name completion" is provided, you have only to type in
774: initial substring of the buffer name which is sufficient to identify
775: it among names of existing buffers. After that, if you hit TAB the
776: rest of the buffer name will be supplied by the system, and you can
777: confirm it by RET. The default buffer name to switch to will also be
778: prompted, and you can select it by giving a simple RET. See GNU
779: Emacs Manual for details of completion.
780:
781:
782:
783: File: vip, Node: Files, Next: Viewing the Buffer, Prev: Buffers and Windows, Up: Vi Commands
784:
785: Files
786: =====
787:
788: We have the following commands related to files. They are used to
789: visit, save and insert files.
790:
791: `v FILE RET'
792: Visit specified file in the current window (`vip-find-file').
793:
794: `V FILE RET'
795: Visit specified file in another window
796: (`vip-find-file-other-window').
797:
798: `X S'
799: Save current buffer to the file associated with the buffer. If
800: no file is associated with the buffer, the name of the file to
801: write out the content of the buffer will be asked in the
802: minibuffer.
803:
804: `X W FILE RET'
805: Write current buffer into a specified file.
806:
807: `X I FILE RET'
808: Insert a specified file at point.
809:
810: `g'
811: Give information on the file associated with the current buffer.
812: Tell you the name of the file associated with the buffer, the
813: line number of the current point and total line numbers in the
814: buffer. If no file is associated with the buffer, this fact
815: will be indicated by the null file name `""'.
816:
817: In Emacs, you can edit a file by "visiting" it. If you wish to visit
818: a file in the current window, you can just type `v'. Emacs maintains
819: the "default directory" which is specific to each buffer. Suppose,
820: for instance, that the default directory of the current buffer is
821: `/usr/masahiko/lisp/'. Then you will get the following prompt in the
822: minibuffer.
823:
824: visit file: /usr/masahiko/lisp/
825:
826: If you wish to visit, say, `vip.el' in this directory, then you can
827: just type `vip.el' followed by RET. If the file `vip.el' already
828: exists in the directory, Emacs will visit that file, and if not, the
829: file will be created. Emacs will use the file name (`vip.el', in
830: this case) as the name of the buffer visiting the file. In order to
831: make the buffer name unique, Emacs may append `<2>', `<3>' etc., to
832: the buffer name. As the "file name completion" is provided here, you
833: can sometime save typing. For instance, suppose there is only one
834: file in the default directory whose name starts with `v', that is
835: `vip.el'. Then if you just type `v TAB' then it will be completed to
836: `vip.el'. Thus, in this case, you just have to type `v v TAB RET' to
837: visit `/usr/masahiko/lisp/vip.el'. Continuing the example, let us
838: now suppose that you wished to visit the file
839: `/usr/masahiko/man/vip.texinfo'. Then to the same prompt which you
840: get after you typed `v', you can enter
841: `/usr/masahiko/man/vip.texinfo' or `../man/vip.texinfo' followed by
842: RET.
843:
844: Use `V' instead of `v', if you wish to visit a file in another window.
845:
846: You can verify which file you are editing by typing `g'. (You can
847: also type `X B' to get nformation on other buffers too.) If you type
848: `g' you will get an information like below in the echo area:
849:
850: "/usr/masahiko/man/vip.texinfo" line 921 of 1949
851:
852: After you edited the buffer (`vip.texinfo', in our example) for a
853: while, you may wish to save it in a file. If you wish to save it in
854: the file associated with the buffer (`/usr/masahiko/man/vip.texinfo',
855: in this case), you can just say `X S'. If you wish to save it in
856: another file, you can type `X W'. You will then get a similar prompt
857: as you get for `v', to which you can enter the file name.
858:
859:
860:
861: File: vip, Node: Viewing the Buffer, Next: Mark Commands, Prev: Files, Up: Vi Commands
862:
863: Viewing the Buffer
864: ==================
865:
866: In this and next section we discuss commands for moving around in the
867: buffer. These command do not change the content of the buffer. The
868: following commands are useful for viewing the content of the current
869: buffer.
870:
871: `SPC'
872: `C-f'
873: Scroll text of current window upward almost full screen. You
874: can go forward in the buffer by this command (`vip-scroll').
875:
876: `RET'
877: `C-b'
878: Scroll text of current window downward almost full screen. You
879: can go backward in the buffer by this command (`vip-scroll-back').
880:
881: `C-d'
882: Scroll text of current window upward half screen. You can go
883: down in the buffer by this command (`vip-scroll-down').
884:
885: `C-u'
886: Scroll text of current window downward half screen. You can go
887: up in the buffer by this command (`vip-scroll-up').
888:
889: `C-y'
890: Scroll text of current window upward by one line
891: (`vip-scroll-down-one').
892:
893: `C-e'
894: Scroll text of current window downward by one line
895: (`vip-scroll-up-one').
896:
897: You can repeat these commands by giving a count. Thus, `2 SPC' has
898: the same effect as `SPC SPC'.
899:
900: The following commands reposition point in the window.
901:
902: `z H'
903: `z RET'
904: Put point on the top (home) line in the window. So the current
905: line becomes the top line in the window. Given a count N, point
906: will be placed in the N-th line from top (`vip-line-to-top').
907:
908: `z M'
909: `z .'
910: Put point on the middle line in the window. Given a count N,
911: point will be placed in the N-th line from the middle line
912: (`vip-line-to-middle').
913:
914: `z L'
915: `z -'
916: Put point on the bottom line in the window. Given a count N,
917: point will be placed in the N-th line from bottom
918: (`vip-line-to-bottom').
919:
920: `C-l'
921: Center point in window and redisplay screen (`recenter').
922:
923:
924:
925: File: vip, Node: Mark Commands, Next: Motion Commands, Prev: Viewing the Buffer, Up: Vi Commands
926:
927: Mark Commands
928: =============
929:
930: The following commands are used to mark positions in the buffer.
931:
932: `m CH'
933: Store current point in the register CH. CH must be a lower case
934: character between `a' and `z'.
935:
936: `m <'
937: Set mark at the beginning of current buffer.
938:
939: `m >'
940: Set mark at the end of current buffer.
941:
942: `m .'
943: Set mark at point.
944:
945: `m ,'
946: Jump to mark (and pop mark off the mark ring).
947:
948: Emacs uses the "mark ring" to store marked positions. The commands
949: `m <', `m >' and `m .' not only set mark but also add it as the
950: latest element of the mark ring (replacing the oldest one). By
951: repeating the command ``m ,'' you can visit older and older marked
952: positions. You will eventually be in a loop as the mark ring is a
953: ring.
954:
955:
956:
957: File: vip, Node: Motion Commands, Next: Searching and Replacing, Prev: Mark Commands, Up: Vi Commands
958:
959: Motion Commands
960: ===============
961:
962: Commands for moving around in the current buffer are collected here.
963: These commands are used as an `argument' for the delete, change and
964: yank commands to be described in the next section.
965:
966: `h'
967: Move point backward by one character. Signal error if point is
968: at the beginning of buffer, but (unlike Vi) do not complain
969: otherwise (`vip-backward-char').
970:
971: `l'
972: Move point backward by one character. Signal error if point is
973: at the end of buffer, but (unlike Vi) do not complain otherwise
974: (`vip-forward-char').
975:
976: `j'
977: Move point to the next line keeping the current column. If
978: point is on the last line of the buffer, a new line will be
979: created and point will move to that line (`vip-next-line').
980:
981: `k'
982: Move point to the previous line keeping the current column
983: (`vip-next-line').
984:
985: `+'
986: Move point to the next line at the first non-white character.
987: If point is on the last line of the buffer, a new line will be
988: created and point will move to the beginning of that line
989: (`vip-next-line-at-bol').
990:
991: `-'
992: Move point to the previous line at the first non-white character
993: (`vip-previous-line-at-bol').
994:
995: If a count is given to these commands, the commands will be repeated
996: that many times.
997:
998: `0'
999: Move point to the beginning of line (`vip-beginning-of-line').
1000:
1001: `^'
1002: Move point to the first non-white character on the line
1003: (`vip-bol-and-skip-white').
1004:
1005: `$'
1006: Move point to the end of line (`vip-goto-eol').
1007:
1008: `N |'
1009: Move point to the N-th column on the line (`vip-goto-col').
1010:
1011: Except for the `|' command, these commands neglect a count.
1012:
1013: `w'
1014: Move point forward to the beginning of the next word
1015: (`vip-forward-word').
1016:
1017: `W'
1018: Move point forward to the beginning of the next word, where a
1019: "word" is considered as a sequence of non-white characters
1020: (`vip-forward-Word').
1021:
1022: `b'
1023: Move point backward to the beginning of a word
1024: (`vip-backward-word').
1025:
1026: `B'
1027: Move point backward to the beginning of a word, where a word is
1028: considered as a sequence of non-white characters
1029: (`vip-forward-Word').
1030:
1031: `e'
1032: Move point forward to the end of a word (`vip-end-of-word').
1033:
1034: `E'
1035: Move point forward to the end of a word, where a word is
1036: considered as a sequence of non-white characters
1037: (`vip-end-of-Word').
1038:
1039: Here the meaning of the word `word' for the `w', `b' and `e' commands
1040: is determined by the "syntax table" effective in the current buffer.
1041: Each major mode has its syntax mode, and therefore the meaning of a
1042: word also changes as the major mode changes. See GNU Emacs Manual
1043: for details of syntax table.
1044:
1045: `H'
1046: Move point to the beginning of the home (top) line of the window.
1047: Given a count N, go to the N-th line from top (`vip-window-top').
1048:
1049: `M'
1050: Move point to the beginning of the middle line of the window.
1051: Given a count N, go to the N-th line from the middle line
1052: (`vip-window-middle').
1053:
1054: `L'
1055: Move point to the beginning of the lowest (bottom) line of the
1056: window. Given count, go to the N-th line from bottom
1057: (`vip-window-bottom').
1058:
1059: These commands can be used to go to the desired line visible on the
1060: screen.
1061:
1062: `('
1063: Move point backward to the beginning of the sentence
1064: (`vip-backward-sentence').
1065:
1066: `)'
1067: Move point forward to the end of the sentence
1068: (`vip-forward-sentence').
1069:
1070: `{'
1071: Move point backward to the beginning of the paragraph
1072: (`vip-backward-paragraph').
1073:
1074: `}'
1075: Move point forward to the end of the paragraph
1076: (`vip-forward-paragraph').
1077:
1078: A count repeats the effect for these commands.
1079:
1080: `G'
1081: Given a count N, move point to the N-th line in the buffer on
1082: the first non-white character. Without a count, go to the end
1083: of the buffer (`vip-goto-line').
1084:
1085: `` `'
1086: Exchange point and mark (`vip-goto-mark').
1087:
1088: `` CH'
1089: Move point to the position stored in the register CH. CH must
1090: be a lower case letter.
1091:
1092: `' ''
1093: Exchange point and mark, and then move point to the first
1094: non-white character on the line (`vip-goto-mark-and-skip-white').
1095:
1096: `' CH'
1097: Move point to the position stored in the register CH and skip to
1098: the first non-white character on the line. CH must be a lower
1099: case letter.
1100:
1101: `%'
1102: Move point to the matching parenthesis if point is looking at
1103: `(', `)', `{', `}', `[' or `]'
1104: (`vip-paren-match').
1105:
1106: The command `G' mark point before move, so that you can return to the
1107: original point by `` `'. The original point will also be stored in
1108: the mark ring.
1109:
1110: The following commands are useful for moving points on the line. A
1111: count will repeat the effect.
1112:
1113: `f CH'
1114: Move point forward to the character CH on the line. Signal
1115: error if CH could not be found (`vip-find-char-forward').
1116:
1117: `F CH'
1118: Move point backward to the character CH on the line. Signal
1119: error if CH could not be found (`vip-find-char-backward').
1120:
1121: `t CH'
1122: Move point forward upto the character CH on the line. Signal
1123: error if CH could not be found (`vip-goto-char-forward').
1124:
1125: `T CH'
1126: Move point backward upto the character CH on the line. Signal
1127: error if CH could not be found (`vip-goto-char-backward').
1128:
1129: `;'
1130: Repeat previous `f', `t', `F' or `T' command (`vip-repeat-find').
1131:
1132: `,'
1133: Repeat previous `f', `t', `F' or `T' command, in the opposite
1134: direction (`vip-repeat-find-opposite').
1135:
1136:
1137:
1138: File: vip, Node: Searching and Replacing, Next: Modifying Commands, Prev: Motion Commands, Up: Vi Commands
1139:
1140: Searching and Replacing
1141: =======================
1142:
1143: Following commands are available for searching and replacing.
1144:
1145: `/ STRING RET'
1146: Search the first occurrence of the string STRING forward
1147: starting from point. Given a count N, the N-th occurrence of
1148: STRING will be searched. If the variable `vip-re-search' has
1149: value `t' then "regular expression" search is done and the
1150: string matching the regular expression STRING is found. If you
1151: give an empty string as STRING then the search mode will change
1152: from vanilla search to regular expression search and vice versa
1153: (`vip-search-forward').
1154:
1155: `? STRING RET'
1156: Same as `/', except that search is done backward
1157: (`vip-search-backward').
1158:
1159: `n'
1160: Search the previous search pattern in the same direction as
1161: before (`vip-search-next').
1162:
1163: `N'
1164: Search the previous search pattern in the opposite direction
1165: (`vip-search-Next').
1166:
1167: `C-s'
1168: Search forward incrementally. See GNU Emacs Manual for details
1169: (`isearch-forward').
1170:
1171: `C-r'
1172: Search backward incrementally (`isearch-backward').
1173:
1174: `R STRING RET NEWSTRING'
1175: There are two modes of replacement, "vanilla" and "regular
1176: expression". If the mode is vanilla you will get a prompt
1177: `Replace string:', and if the mode is regular expression you
1178: will ge a prompt `Replace regexp:'. The mode is initially
1179: vanilla, but you can toggle these modes by giving a null string
1180: as STRING. If the mode is vanilla, this command replaces every
1181: occurrence of STRING with NEWSTRING. If the mode is regular
1182: expression, STRING is treated as a regular expression and every
1183: string matching the regular expression is replaced with
1184: NEWSTRING (`vip-replace-string').
1185:
1186: `Q STRING RET NEWSTRING'
1187: Same as `R' except that you will be asked form confirmation
1188: before each replacement
1189: (`vip-query-replace').
1190:
1191: `r CH'
1192: Replace the character point is looking at by the character CH.
1193: Give count, replace that many characters by CH
1194: (`vip-replace-char').
1195:
1196: The commands `/' and `?' mark point before move, so that you can
1197: return to the original point by `` `'.
1198:
1199:
1200:
1201: File: vip, Node: Modifying Commands, Next: Delete Commands, Prev: Searching and Replacing, Up: Vi Commands
1202:
1203: Modifying Commands
1204: ==================
1205:
1206: In this section, commands for modifying the content of a buffer are
1207: described. These commands affect the region determined by a motion
1208: command which is given to the commands as their argument.
1209:
1210: We classify motion commands into "point commands" and "line
1211: commands". The point commands are as follows:
1212:
1213: `h', `l', `0', `^', `$', `w', `W', `b', `B', `e', `E', `(', `)', `/', `?', ``', `f', `F', `t', `T', `%', `;', `,'
1214:
1215: The line commands are as follows:
1216:
1217: `j', `k', `+', `-', `H', `M', `L', `{', `}', `G', `''
1218:
1219: If a point command is given as an argument to a modifying command,
1220: the region determined by the point command will be affected by the
1221: modifying command. On the other hand, if a line command is given as
1222: an argument to a modifying command, the region determined by the line
1223: command will be enlarged so that it will become the smallest region
1224: properly containing the region and consisting of whole lines (we call
1225: this process "expanding the region"), and then the enlarged region
1226: will be affected by the modifying command.
1227:
1228: * Menu:
1229:
1230: * Delete Commands:: Commands for deleting text.
1231: * Yank Commands:: Commands for yanking text in Vi's sense.
1232: * Put Back Commands:: Commands for putting bake deleted/yanked text.
1233: * Change Commands:: Commands for changing text.
1234:
1235:
1236:
1237: File: vip, Node: Delete Commands, Next: Yank Commands, Prev: Modifying Commands, Up: Modifying Commands
1238:
1239: Delete Commands
1240: ---------------
1241:
1242: `d MOTION-COMMAND'
1243: Delete the region determined by the motion command MOTION-COMMAND.
1244:
1245: For example, `d $' will delete the region between point and end of
1246: current line since `$' is a point command that moves point to end of
1247: line. `d G' will delete the region between the beginning of current
1248: line and end of the buffer, since `G' is a line command. A count
1249: given to the command above will become the count for the associated
1250: motion command. Thus, `3 d w' will delete three words.
1251:
1252: It is also possible to save the deleted text into a register you
1253: specify. For example, you can say `" t 3 d w' to delete three words
1254: and save it to register `t'. The name of a register is a lower case
1255: letter between `a' and `z'. If you give an upper case letter as an
1256: argument to a delete command, then the deleted text will be appended
1257: to the content of the register having the corresponding lower case
1258: letter as its name. So, `" T d w' will delete a word and append it
1259: to register `t'. Other modifying commands also accept a register
1260: name as their argument, and we will not repeat similar explanations.
1261:
1262: We have more delete commands as below.
1263:
1264: `d d'
1265: Delete a line. Given a count N, delete N lines.
1266:
1267: `d r'
1268: Delete current region.
1269:
1270: `d R'
1271: Expand current region and delete it.
1272:
1273: `D'
1274: Delete to the end of a line (`vip-kill-line').
1275:
1276: `x'
1277: Delete a character after point. Given N, delete N characters
1278: (`vip-delete-char').
1279:
1280: `DEL'
1281: Delete a character before point. Given N, delete N characters
1282: (`vip-delete-backward-char').
1283:
1284:
1285:
1286: File: vip, Node: Yank Commands, Next: Put Back Commands, Prev: Delete Commands, Up: Modifying Commands
1287:
1288: Yank Commands
1289: -------------
1290:
1291: Yank commands "yank" a text of buffer into a (usually anonymous)
1292: register. Here the word `yank' is used in Vi's sense. Thus yank
1293: commands do not alter the content of the buffer, and useful only in
1294: combination with commands that put back the yanked text into the
1295: buffer.
1296:
1297: `y MOTION-COMMAND'
1298: Yank the region determined by the motion command MOTION-COMMAND.
1299:
1300: For example, `y $' will yank the text between point and the end of
1301: line into an anonymous register, while `"c y $' will yank the same
1302: text into register `c'.
1303:
1304: Use the following command to yank consecutive lines of text.
1305:
1306: `y y'
1307: `Y'
1308: Yank a line. Given N, yank N lines (`vip-yank-line').
1309:
1310: `y r'
1311: Yank current region.
1312:
1313: `y R'
1314: Expand current region and yank it.
1315:
1316:
1317:
1318: File: vip, Node: Put Back Commands, Next: Change Commands, Prev: Yank Commands, Up: Modifying Commands
1319:
1320: Put Back Commands
1321: -----------------
1322:
1323: Deleted or yanked texts can be put back into the buffer by the
1324: command below.
1325:
1326: `p'
1327: Insert, after the character point is looking at, most recently
1328: deleted/yanked text from anonymous register. Given a register
1329: name argument, the content of the named register will be put
1330: back. Given a count, the command will be repeated that many
1331: times. This command also checks if the text to put back ends
1332: with a new line character, and if so the text will be put below
1333: the current line (`vip-put-back').
1334:
1335: `P'
1336: Insert at point most recently deleted/yanked text from anonymous
1337: register. Given a register name argument, the content of the
1338: named register will be put back. Given a count, the command
1339: will be repeated that many times. This command also checks if
1340: the text to put back ends with a new line character, and if so
1341: the text will be put above the current line rather than at point
1342: (`vip-Put-back').
1343:
1344: Thus, `" c p' will put back the content of the register `c' into the
1345: buffer. It is also possible to specify "number register" which is a
1346: numeral between `1' and `9'. If the number register N is specified,
1347: N-th previously deleted/yanked text will be put back. It is an error
1348: to specify a number register for the delete/yank commands.
1349:
1350:
1351:
1352: File: vip, Node: Change Commands, Next: Repeating and Undoing Modifications, Prev: Put Back Commands, Up: Modifying Commands
1353:
1354: Change Commands
1355: ---------------
1356:
1357: Most commonly used change command takes the following form.
1358:
1359: `c MOTION-COMMAND'
1360: Replace the content of the region determined by the motion
1361: command MOTION-COMMAND by the text you type. If the motion
1362: command is a point command then you will type the text into
1363: minibuffer, and if the motion command is a line command then the
1364: region will be deleted first and you can insert the text in
1365: INSERT MODE.
1366:
1367: For example, if point is at the beginning of a word `foo' and you
1368: wish to change it to `bar', you can type `c w'. Then, as `w' is a
1369: point command, you will get the prompt `foo =>' in the minibuffer,
1370: for which you can type `b a r RET' to complete the change command.
1371:
1372: `c c'
1373: Change a line. Given a count, that many lines are changed.
1374:
1375: `c r'
1376: Change current region.
1377:
1378: `c R'
1379: Expand current region and change it.
1380:
1381:
1382:
1383: File: vip, Node: Repeating and Undoing Modifications, Next: Other Vi Commands, Prev: Change Commands, Up: Modifying Commands
1384:
1385: Repeating and Undoing Modifications
1386: -----------------------------------
1387:
1388: VIP records the previous modifying command, so that it is easy to
1389: repeat it. It is also very easy to undo changes made by modifying
1390: commands.
1391:
1392: `u'
1393: Undo the last change. You can undo more by repeating undo by
1394: the repeat command `.'. For example, you can undo 5 previous
1395: changes by typing `u....'. If you type `uu', then the second
1396: `u' undoes the first undo command (`vip-undo').
1397:
1398: `.'
1399: Repeat the last modifying command. Given count N it becomes the
1400: new count for the repeated command. Otherwise, the count for
1401: the last modifying command is used again (`vip-repeat').
1402:
1403:
1404:
1405: File: vip, Node: Other Vi Commands, Next: Commands in Insert Mode, Prev: Repeating and Undoing Modifications, Up: Vi Commands
1406:
1407: Other Vi Commands
1408: =================
1409:
1410: Miscellaneous Vi commands are collected here.
1411:
1412: `Z Z'
1413: Exit Emacs. If modified buffers exist, you will be asked
1414: whether you wish to save them or not (`save-buffers-kill-emacs').
1415:
1416: `! MOTION-COMMAND FORMAT-COMMAND'
1417: `N ! ! FORMAT-COMMAND'
1418: The region determined by the motion command MOTION-COMMAND will
1419: be given to the shell command FORMAT-COMMAND and the region will
1420: be replaced by its output. If a count is given, it will be
1421: passed to MOTION-COMMAND. For example, `3!Gsort' will sort the
1422: region between point and the 3rd line. If `!' is used instead
1423: of MOTION-COMMAND then N lines will be processed by
1424: FORMAT-COMMAND (`vip-command-argument').
1425:
1426: `J'
1427: Join two lines. Given count, join that many lines. A space
1428: will be inserted at each junction (`vip-join-lines').
1429:
1430: `< MOTION-COMMAND'
1431: `N < <'
1432: Shift region determined by the motion command MOTION-COMMAND to
1433: left by SHIFT-WIDTH (default is 8). If `<' is used instead of
1434: MOTION-COMMAND then shift N lines
1435: (`vip-command-argument').
1436:
1437: `> MOTION-COMMAND'
1438: `N > >'
1439: Shift region determined by the motion command MOTION-COMMAND to
1440: right by SHIFT-WIDTH (default is 8). If `<' is used instead of
1441: MOTION-COMMAND then shift N lines
1442: (`vip-command-argument').
1443:
1444: `= MOTION-COMMAND'
1445: Indent region determined by the motion command MOTION-COMMAND.
1446: If `=' is used instead of MOTION-COMMAND then indent N lines
1447: (`vip-command-argument').
1448:
1449: `*'
1450: Call last remembered keyboard macro.
1451:
1452: `#'
1453: A new vi operator. *Note New Commands::, for more details.
1454:
1455: The following keys are reserved for future extensions, and currently
1456: assigned to a function that just beeps (`vip-nil').
1457:
1458: &, @, U, [, ], _, q, ~
1459:
1460: VIP uses a special local keymap to interpret key strokes you enter in
1461: vi mode. The following keys are bound to NIL in the keymap.
1462: Therefore, these keys are interpreted by the global keymap of Emacs.
1463: We give below a short description of the functions bound to these
1464: keys in the global keymap. See GNU Emacs Manual for details.
1465:
1466: `C-@'
1467: Set mark and push previous mark on mark ring (`set-mark-command').
1468:
1469: `TAB'
1470: Indent line for current major mode (`indent-for-tab-command').
1471:
1472: `LFD'
1473: Insert a newline, then indent according to mode
1474: (`newline-and-indent').
1475:
1476: `C-k'
1477: Kill the rest of the current line; before a newline, kill the
1478: newline. With prefix argument, kill that many lines from point.
1479: Negative arguments kill lines backward (`kill-line').
1480:
1481: `C-l'
1482: Clear the screen and reprint everything (`recenter').
1483:
1484: `N C-p'
1485: Move cursor vertically up N lines (`previous-line').
1486:
1487: `C-q'
1488: Read next input character and insert it. Useful for inserting
1489: control characters
1490: (`quoted-insert').
1491:
1492: `C-r'
1493: Search backward incrementally (`isearch-backward').
1494:
1495: `C-s'
1496: Search forward incrementally (`isearch-forward').
1497:
1498: `N C-t'
1499: Interchange charcters around point, moving forward one
1500: character. With count N, take character before point and drag
1501: it forward past N other characters. If no argument and at end
1502: of line, the previous two characters are exchanged
1503: (`transpose-chars').
1504:
1505: `N C-v'
1506: Scroll text upward N lines. If N is not given, scroll near full
1507: screen (`scroll-up').
1508:
1509: `C-w'
1510: Kill between point and mark. The text is save in the kill ring.
1511: The command `P' or `p' can retrieve it from kill ring
1512: (`kill-region').
1513:
1514:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.