cl-lib defstruct introspection
[bpt/emacs.git] / doc / misc / viper.texi
index 8645552..58e7447 100644 (file)
@@ -6,8 +6,10 @@
 @comment @setfilename viper.info
 @setfilename ../../info/viper
 
+@documentencoding UTF-8
+
 @copying
-Copyright @copyright{} 1995-1997, 2001-2012 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--1997, 2001--2014 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -18,16 +20,13 @@ and with the Back-Cover Texts as in (a) below.  A copy of the license
 is included in the section entitled ``GNU Free Documentation License''.
 
 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
-modify this GNU manual.  Buying copies from the FSF supports it in
-developing GNU and promoting software freedom.''
+modify this GNU manual.''
 @end quotation
 @end copying
 
 @dircategory Emacs misc features
 @direntry
-* VIPER: (viper).               The newest Emacs VI-emulation mode.
-                                  (also, A VI Plan for Emacs Rescue
-                                  or the VI PERil.)
+* VIPER: (viper).               A VI-emulation mode for Emacs.
 @end direntry
 
 @finalout
@@ -49,9 +48,8 @@ developing GNU and promoting software freedom.''
 @contents
 
 @ifnottex
-@node Top, Overview,, (DIR)
-
-@unnumbered Viper
+@node Top
+@top Viper
 
 We believe that one or more of the following statements are adequate
 descriptions of Viper:
@@ -78,7 +76,7 @@ Viper, formerly known as VIP-19, was written by Michael Kifer.  It is based
 on VIP version 3.5 by Masahiko Sato and VIP version 4.4 by Aamod Sane.
 About 15% of the code still comes from those older packages.
 
-Viper is intended to be usable without reading this manual --- the defaults
+Viper is intended to be usable without reading this manual; the defaults
 are set to make Viper as close to Vi as possible.  At startup, Viper will
 try to set the most appropriate default environment for you, based on
 your familiarity with Emacs.  It will also tell you the basic GNU Emacs window
@@ -92,7 +90,7 @@ be visited as needed.
 
 Comments and bug reports are welcome.
 @code{kifer@@cs.stonybrook.edu} is the current address for Viper bug reports.
-Please use the Ex command @kbd{:submitReport} for this purpose.@refill
+Please use the Ex command @kbd{:submitReport} for this purpose.
 
 @insertcopying
 @end ifnottex
@@ -102,16 +100,13 @@ Please use the Ex command @kbd{:submitReport} for this purpose.@refill
 * Improvements over Vi::        New features, Improvements
 * Customization::               How to customize Viper
 * Commands::                    Vi and Ex Commands
-
+* GNU Free Documentation License:: The license for this documentation.
+* Acknowledgments::
 * Key Index::                   Index of Vi and Ex Commands
 * Function Index::              Index of Viper Functions
 * Variable Index::              Index of Viper Variables
 * Package Index::               Index of Packages Mentioned in this Document
 * Concept Index::               Vi, Ex and Emacs concepts
-
-* Acknowledgments::
-* GNU Free Documentation License:: The license for this documentation.
-
 @end menu
 @iftex
 @unnumbered Introduction
@@ -136,8 +131,8 @@ Viper was written by Michael Kifer.  It is based on VIP version 3.5 by
 Masahiko Sato and VIP version 4.4 by Aamod Sane.  About 15% of the code
 still comes from those older packages.
 
-Viper is intended to be usable out of the box, without reading this manual
---- the defaults are set to make Viper as close to Vi as possible.  At
+Viper is intended to be usable out of the box, without reading this manual;
+the defaults are set to make Viper as close to Vi as possible.  At
 startup, Viper will attempt to set the most appropriate default environment
 for you, based on your familiarity with Emacs.  It will also tell you the
 basic GNU Emacs window management commands to help you start immediately.
@@ -154,11 +149,11 @@ comes with Emacs.  This manual can be read as an Info file.  Try the command
 
 Comments and bug reports are welcome.
 @code{kifer@@cs.stonybrook.edu} is the current address for Viper bug reports.
-Please use the Ex command @kbd{:submitReport} for this purpose.@refill
+Please use the Ex command @kbd{:submitReport} for this purpose.
 
 @end iftex
 
-@node Overview,Improvements over Vi,Top,Top
+@node Overview
 @chapter Overview of Viper
 
 Viper is a Vi emulation on top of Emacs.  At the same time, Viper provides a
@@ -175,8 +170,8 @@ world of Vi! These users are well familiar with Emacs bindings and prefer them
 in some cases, especially in the Vi Insert state. John Hawkins
 <jshawkin@@eecs.umich.edu> has provided a set of customizations, which
 enables additional Emacs bindings under Viper.  These customizations can be
-included in your @file{~/.viper} file and are found at the following URL:
-@file{http://traeki.freeshell.org/files/viper-sample}.
+included in your @file{~/.emacs.d/viper} file and are found at the
+following URL: @file{http://traeki.freeshell.org/files/viper-sample}.
 
 @menu
 * Emacs Preliminaries::         Basic concepts in Emacs.
@@ -188,7 +183,7 @@ included in your @file{~/.viper} file and are found at the following URL:
 * Unimplemented Features::      That are unlikely to be implemented.
 @end menu
 
-@node Emacs Preliminaries, Loading Viper, Overview, Overview
+@node Emacs Preliminaries
 @section Emacs Preliminaries
 
 @cindex buffer
@@ -204,21 +199,21 @@ Emacs can edit several files at once.  A file in Emacs is placed in a
 @dfn{buffer} that usually has the same name as the file.  Buffers are also used
 for other purposes, such as shell interfaces, directory editing, etc.
 @xref{Dired,,Directory Editor,emacs,The
-GNU Emacs Manual}, for an example.@refill
+GNU Emacs Manual}, for an example.
 
 A buffer has a distinguished position called the @dfn{point}.
 A @dfn{point} is always between 2 characters, and is @dfn{looking at}
 the right hand character.  The cursor is positioned on the right hand
 character.  Thus, when the @dfn{point} is looking at the end-of-line,
-the cursor is on the end-of-line character, i.e.@: beyond the last
-character on the line.  This is the default Emacs behavior.@refill
+the cursor is on the end-of-line character, i.e., beyond the last
+character on the line.  This is the default Emacs behavior.
 
 The default settings of Viper try to mimic the behavior of Vi, preventing
 the cursor from going beyond the last character on the line.  By using
 Emacs commands directly (such as those bound to arrow keys), it is possible
 to get the cursor beyond the end-of-line.  However, this won't (or
 shouldn't) happen if you restrict yourself to standard Vi keys, unless you
-modify the default editing style.  @xref{Customization}.@refill
+modify the default editing style.  @xref{Customization}.
 
 In addition to the @dfn{point}, there is another distinguished buffer
 position called the @dfn{mark}.  @xref{Mark,,Mark,emacs,The GNU Emacs
@@ -239,7 +234,7 @@ assuming that the current region starts at line 123 and ends at line
 135.  There is no need to type the line numbers, since Viper inserts them
 automatically in front of the Ex command.
 
-@xref{Basics}, for more info.@refill
+@xref{Basics}, for more info.
 
 @cindex window
 @cindex mode line
@@ -262,7 +257,7 @@ show the buffer name and current major and minor modes (see below).
 A special buffer called @dfn{Minibuffer} is displayed as the last line
 in a minibuffer window.  The minibuffer window is used for command input
 output.  Viper uses minibuffer window for @kbd{/} and @kbd{:}
-commands.@refill
+commands.
 
 @cindex mode
 @cindex keymap
@@ -282,7 +277,7 @@ keymap then that function will be executed when you type the key.
 If no function is bound to a key in the
 local map, however, the function bound to the key in the global map
 will be executed.  @xref{Major Modes,Major Modes,Major Modes,emacs,The
-GNU Emacs Manual}, for more information.@refill
+GNU Emacs Manual}, for more information.
 
 A buffer can also have a @dfn{minor mode}.  Minor modes are options that
 you can use or not.  A buffer in @code{text-mode} can have
@@ -290,7 +285,7 @@ you can use or not.  A buffer in @code{text-mode} can have
 any time.  In Emacs, a minor mode may have it own keymap,
 which overrides the local keymap when the minor mode is turned on.  For
 more information, @pxref{Minor Modes,Minor Modes,Minor Modes,emacs,The
-GNU Emacs Manual} @refill
+GNU Emacs Manual}.
 
 @cindex Viper as minor mode
 @cindex Control keys
@@ -300,23 +295,23 @@ Viper is implemented as a collection of minor modes.  Different minor modes
 are involved when Viper emulates Vi command mode, Vi insert mode, etc.
 You can also turn Viper on and off at any time while in Vi command mode.
 @xref{States in Viper}, for
-more information.@refill
+more information.
 
 Emacs uses Control and Meta modifiers.  These are denoted as C and M,
-e.g.@: @kbd{^Z} as @kbd{C-z} and @kbd{Meta-x} as @kbd{M-x}.  The Meta key is
+e.g., @kbd{^Z} as @kbd{C-z} and @kbd{Meta-x} as @kbd{M-x}.  The Meta key is
 usually located on each side of the Space bar; it is used in a manner
 similar to the Control key, e.g., @kbd{M-x} means typing @kbd{x} while
 holding the Meta key down.  For keyboards that do not have a Meta key,
 @key{ESC} is used as Meta.  Thus @kbd{M-x} is typed as @kbd{@key{ESC}
 x}.  Viper uses @key{ESC} to switch from Insert state to Vi state.  Therefore
 Viper defines @kbd{C-\} as its Meta key in Vi state.  @xref{Vi State}, for
-more info.@refill
+more info.
 
 Emacs is structured as a Lisp interpreter around a C core.  Emacs keys
 cause Lisp functions to be called.  It is possible to call these
 functions directly, by typing @kbd{M-x function-name}.
 
-@node Loading Viper, States in Viper, Emacs Preliminaries, Overview
+@node Loading Viper
 @section Loading Viper
 
 The most common way to load it automatically is to include the following
@@ -334,14 +329,14 @@ the place where all general Emacs customization takes place.  Beginning with
 version 20.0, Emacsen have an interactive interface, which simplifies the
 job of customization significantly.
 
-Viper also uses the file @file{~/.viper} for Viper-specific customization.
+Viper also uses the file @file{~/.emacs.d/viper} for Viper-specific customization.
 The location of Viper customization file can be changed by setting the
 variable @code{viper-custom-file-name} in @file{.emacs} @emph{prior} to loading
 Viper.
 
 The latest versions of Emacs have an interactive customization facility,
 which allows you to (mostly) bypass the use of the @file{.emacs} and
-@file{.viper} files. You can reach this customization
+@code{viper-custom-file-name} files. You can reach this customization
 facility from within Viper's VI state by executing the Ex command
 @kbd{:customize}.
 
@@ -359,19 +354,19 @@ M-x viper-mode
 @end lisp
 
 When Emacs first comes up, if you have not specified a file on the
-command line, it will show the @samp{*scratch*} buffer, in the
+command line, it will show the @file{*scratch*} buffer, in the
 @samp{Lisp Interaction} mode.  After you invoke Viper, you can start
 editing files by using @kbd{:e}, @kbd{:vi}, or @kbd{v} commands.
 (@xref{File and Buffer Handling}, for more information on @kbd{v} and other
 new commands that, in many cases, are more convenient than @kbd{:e},
-@kbd{:vi}, and similar old-style Vi commands.)@refill
+@kbd{:vi}, and similar old-style Vi commands.)
 
 Finally, if at some point you would want to de-Viperize your running
 copy of Emacs after Viper has been loaded, the command @kbd{M-x
 viper-go-away} will do it for you.  The function @code{toggle-viper-mode}
 toggles Viperization of Emacs on and off.
 
-@node States in Viper, The Minibuffer, Loading Viper,Overview
+@node States in Viper
 @section States in Viper
 
 @kindex @kbd{C-z}
@@ -393,7 +388,7 @@ This is the state plain vanilla Emacs is normally in.  After you have loaded
 Viper, @kbd{C-z} will normally take you to Vi command state.  Another
 @kbd{C-z} will take you back to Emacs state.  This toggle key can be
 changed, @pxref{Customization} You can also type @kbd{M-x viper-mode} to
-change to Vi state.@refill
+change to Vi state.
 
 
 For users who chose to set their user level to 1 at Viper setup time,
@@ -431,7 +426,7 @@ boundary of a replacement region (usually designated via a @samp{$} sign),
 it will automatically change to Insert state.  You do not have to worry
 about it.  The key bindings remain practically the same as in Insert
 state.  If you type @key{ESC}, Viper will switch to Vi command mode, terminating the
-replacement state.@refill
+replacement state.
 @end table
 
 @cindex mode line
@@ -449,7 +444,7 @@ doing soon!), you should learn about the meaning of the various keys in
 those special modes (typing @kbd{C-h m} in a buffer provides
 help with key bindings for the major mode of that buffer).
 
-If you switch to Vi in Dired or similar modes---no harm is done.  It is just
+If you switch to Vi in Dired or similar modesno harm is done.  It is just
 that the special key bindings provided by those modes will be temporarily
 overshadowed by Viper's bindings.  Switching back to Viper's Emacs state
 will revive the environment provided by the current major mode.
@@ -477,7 +472,7 @@ to allow Emacs keys in Insert state.
                         replacement commands, such as cw, C, R, etc.
 @end menu
 
-@node Emacs State, Vi State, States in Viper, States in Viper
+@node Emacs State
 @subsection Emacs State
 
 @kindex @kbd{C-z}
@@ -495,7 +490,7 @@ for editing LaTeX documents, Dired for directory editing, etc.  These are
 major modes, each with a different set of key-bindings.  Viper states are
 orthogonal to these Emacs major modes.  The presence of these language
 sensitive and other modes is a major win over Vi.  @xref{Improvements over
-Vi}, for more.@refill
+Vi}, for more.
 
 The bindings for these modes can be made available in the Viper Insert state
 as well as in Emacs state.  Unless you specify your user level as 1 (a
@@ -509,7 +504,7 @@ from the Insert state: typing @kbd{C-z} will let you execute a
 single Vi command while staying in Viper's Insert state.
 
 
-@node Vi State, Insert State, Emacs State, States in Viper
+@node Vi State
 @subsection Vi State
 
 @cindex Vi state
@@ -548,7 +543,6 @@ functionality and no key-binding.  Recursive edits are indicated by
 Edit,Recursive Edit,emacs,The GNU Emacs Manual}.
 At user level 1, @kbd{C-g} is bound to @code{viper-info-on-file}
 function instead.
-@refill
 @item C-\
 @kindex @kbd{C-\}
 @cindex Meta key
@@ -617,8 +611,8 @@ is slightly different from other programs.  It is designed to minimize the
 need for deleting file names that Emacs provides in its prompts.  (This is
 usually convenient, but occasionally the prompt may suggest a wrong file
 name for you.)  If you see a prompt @kbd{/usr/foo/} and you wish to edit the
-file @kbd{~/.viper}, you don't have to erase the prompt.  Instead, simply
-continue typing what you need.  Emacs will interpret @kbd{/usr/foo/~/.viper}
+file @kbd{~/.file}, you don't have to erase the prompt.  Instead, simply
+continue typing what you need.  Emacs will interpret @kbd{/usr/foo/~/.file}
 correctly.  Similarly, if the prompt is @kbd{~/foo/} and you need to get to
 @kbd{/bar/file}, keep typing.  Emacs interprets @kbd{~/foo//bar/} as
 @kbd{/bar/file}, since when it sees @samp{//}, it understands that
@@ -659,7 +653,6 @@ In contrast to @kbd{:w!@: foo}, if the command were @kbd{:r foo}, the entire
 command will appear in the history list.  This is because having @kbd{:r}
 alone as a default is meaningless, since this command requires a file
 argument.
-@refill
 @end table
 @noindent
 As in Vi, Viper's destructive commands can be re-executed by typing `@kbd{.}'.
@@ -669,7 +662,7 @@ Having found the appropriate command, it can be then executed by typing
 `@kbd{.}'.
 @xref{Improvements over Vi}, for more information.
 
-@node Insert State, Replace State, Vi State, States in Viper
+@node Insert State
 @subsection Insert State
 
 @cindex Insert state
@@ -680,7 +673,7 @@ Emacs major modes cannot be used in Insert state.
 It is strongly recommended that as soon as you are comfortable, make the
 Emacs state bindings visible (by changing your user level to 3 or higher).
 @xref{Customization},
-to see how to do this.@refill
+to see how to do this.
 
 Once this is done, it is possible to do quite a bit of editing in
 Insert state.  For instance, Emacs has a @dfn{yank} command, @kbd{C-y},
@@ -729,7 +722,7 @@ the Insert state.
 
 When Viper is in Insert state, you will see <I> in the mode line.
 
-@node Replace State,, Insert State, States in Viper
+@node Replace State
 @subsection Replace State
 
 @cindex Replace state
@@ -761,7 +754,7 @@ was still inside the replacement region.  So, in the above situation, Viper
 would delete text between this position and the end of the replacement
 region.
 
-@node The Minibuffer,Multiple Files in Viper, States in Viper, Overview
+@node The Minibuffer
 @section The Minibuffer
 
 @cindex Minibuffer
@@ -802,8 +795,8 @@ between the Vi state and Insert state at will, and even use the replace mode.
 Initially, the minibuffer comes up in Insert state.
 
 Some users prefer plain Emacs bindings in the minibuffer.  To this end, set
-@code{viper-vi-style-in-minibuffer} to @code{nil} in @file{.viper}.
-@xref{Customization}, to learn how to do this.
+@code{viper-vi-style-in-minibuffer} to @code{nil} in
+your Viper customization file.  @xref{Customization}, to learn how to do this.
 
 When the minibuffer changes Viper states, you will notice that the appearance
 of the text there changes as well.  This is useful because the minibuffer
@@ -811,7 +804,7 @@ has no mode line to tell which Vi state it is in.
 The appearance of the text in the minibuffer can be changed.
 @xref{Viper Specials}, for more details.
 
-@node Multiple Files in Viper,Unimplemented Features,The Minibuffer,Overview
+@node Multiple Files in Viper
 @section Multiple Files in Viper
 
 @cindex multiple files
@@ -830,13 +823,13 @@ If you set marker @samp{a} in
 file @file{foo}, start editing file @file{bar} and type @kbd{'a}, then
 @emph{YOU WILL SWITCH TO FILE @file{foo}}.  You can see the contents of a
 textmarker using the Viper command @kbd{[<a-z>} where <a-z> are the
-textmarkers, e.g., @kbd{[a} to view marker @samp{a} .@refill
+textmarkers, e.g., @kbd{[a} to view marker @samp{a} .
 @item Repeated Commands
 Command repetitions are common over files.  Typing @kbd{!!} will repeat the
 last @kbd{!} command whichever file it was issued from.
 Typing @kbd{.} will repeat the last command from any file, and
 searches will repeat the last search.  Ex commands can be repeated by typing
-@kbd{: @key{RET}}.@refill
+@kbd{: @key{RET}}.
 Note: in some rare cases, that @kbd{: @key{RET}} may do something dangerous.
 However, usually its effect can be undone by typing @kbd{u}.
 @item Registers
@@ -886,7 +879,7 @@ Currently undisplayed files can be listed using the @kbd{:ar} command.  The
 command @kbd{:n} can be given counts from the @kbd{:ar} list to switch to
 other files. For example, use `:n3' to move to the third file in that list.
 
-@node Unimplemented Features,,Multiple Files in Viper,Overview
+@node Unimplemented Features
 @section Unimplemented Features
 
 Unimplemented features include:
@@ -904,11 +897,10 @@ more powerful facilities for defining abbreviations.
 it is not implemented.
 A useful alternative is @code{cat -t -e file}.  Unfortunately, it cannot
 be used directly inside Emacs, since Emacs will obdurately change @samp{^I}
-back to normal tabs.@refill
+back to normal tabs.
 @end itemize
 
-@comment  node-name,  next,  previous,  up
-@node Improvements over Vi, Customization, Overview, Top
+@node Improvements over Vi
 @chapter Improvements over Vi
 
 Some common problems with Vi and Ex have been solved in Viper.  This
@@ -929,14 +921,14 @@ the facilities provided by Emacs.
                             you should know about.
 @end menu
 
-@node Basics, Undo and Backups, Improvements over Vi, Improvements over Vi
+@node Basics
 @section Basics
 
 The Vi command set is based on the idea of combining motion commands
 with other commands.  The motion command is used as a text region
 specifier for other commands.
 We classify motion commands into @dfn{point commands} and
-@dfn{line commands}.@refill
+@dfn{line commands}.
 
 @cindex point commands
 
@@ -997,10 +989,10 @@ In the Overview chapter, some Multiple File issues were discussed
 (@pxref{Multiple Files in Viper}).  In addition to the files, Emacs has
 buffers.  These can be seen in the @kbd{:args} list and switched using
 @kbd{:next} if you type @kbd{:set ex-cycle-through-non-files t}, or
-specify @code{(setq ex-cycle-through-non-files t)} in your @file{.viper}
-file.  @xref{Customization}, for details.
+specify @code{(setq ex-cycle-through-non-files t)} in your
+Viper customization file.  @xref{Customization}, for details.
 
-@node Undo and Backups, History, Basics, Improvements over Vi
+@node Undo and Backups
 @section Undo and Backups
 
 @cindex undo
@@ -1018,7 +1010,7 @@ direction.
 Since the undo size is limited, Viper can create backup files and
 auto-save files.  It will normally do this automatically.  It is possible
 to have numbered backups, etc.  For details, @pxref{Backup,,Backup and
-Auto-Save,emacs,The GNU Emacs Manual} @refill
+Auto-Save,emacs,The GNU Emacs Manual}.
 
 @comment [ balance parens
 @cindex viewing registers and markers
@@ -1036,7 +1028,7 @@ will show the text around the textmarker.  @samp{register} and @samp{textmarker}
 can be any letters from a through z.
 @comment ] balance parens
 
-@node History,  Macros and Registers, Undo and Backups,Improvements over Vi
+@node History
 @section History
 
 @cindex history
@@ -1075,7 +1067,7 @@ Similarly, commands that have to do with switching buffers
 have a buffer history, and commands that expect strings or regular
 expressions keep a history on those items.
 
-@node Macros and Registers,Completion,History,Improvements over Vi
+@node Macros and Registers
 @section Macros and Registers
 
 @cindex keyboard macros
@@ -1091,7 +1083,7 @@ where @samp{register} is any character from @samp{a} through @samp{z}.  Then
 you can execute this macro using @kbd{@@register}.  It is, of course,
 possible to yank some text into a register and execute it using
 @kbd{@@register}.  Typing @kbd{@@@@}, @kbd{@@RET}, or @kbd{@@C-j} will
-execute the last macro that was executed using @kbd{@@register}.@refill
+execute the last macro that was executed using @kbd{@@register}.
 
 Viper will automatically lowercase the register, so that pressing the
 @kbd{SHIFT} key for @kbd{@@} will not create problems.  This is for
@@ -1113,7 +1105,7 @@ The last keyboard macro can also be executed using
 This is useful for Emacs style keyboard macros defined using @kbd{C-x(}
 and @kbd{C-x)}.  Emacs keyboard macros have more capabilities.
 @xref{Keyboard Macros,,Keyboard Macros,emacs, The GNU Emacs Manual}, for
-details.@refill
+details.
 
 Keyboard Macros allow an interesting form of Query-Replace:
 @kbd{/pattern} or @kbd{n} to go to the next pattern (the query), followed by a
@@ -1122,7 +1114,7 @@ Keyboard Macro execution @kbd{@@@@} (the replace).
 Viper also provides Vi-style macros.  @xref{Vi Macros}, for details.
 
 
-@node Completion, Improved Search, Macros and Registers, Improvements over Vi
+@node Completion
 @section Completion
 
 @cindex completion
@@ -1133,14 +1125,15 @@ no longer work for that file name.  Remember that Emacs interprets a file name
 of the form @kbd{/foo//bar} as @kbd{/bar} and @kbd{/foo/~/bar} as
 @kbd{~/bar}.
 
-@node Improved Search, Abbreviation Facilities, Completion, Improvements over Vi
+@node Improved Search
 @section Improved Search
 
 @cindex buffer search
 @cindex word search
 
 Viper provides buffer search, the ability to search the buffer for a region
-under the cursor.  You have to turn this on in @file{.viper} either by calling
+under the cursor.  You have to turn this on in your Viper customization file
+either by calling
 
 @example
 (viper-buffer-search-enable)
@@ -1169,7 +1162,7 @@ as you go along.  Incremental Search is normally bound to @kbd{C-s} and
 @kbd{C-r}.  @xref{Customization}, to find out how to change the bindings
 of @kbd{C-r or C-s}.
 For details, @pxref{Incremental Search,,Incremental
-Search,emacs,The GNU Emacs Manual} @refill
+Search,emacs,The GNU Emacs Manual}.
 
 @cindex query replace
 
@@ -1190,10 +1183,10 @@ variable that controls how search patterns are highlighted is
 @end example
 @vindex @code{viper-search-face}
 @noindent
-in @file{~/.viper}.  If you want to change how patterns are highlighted, you
-will have to change @code{viper-search-face} to your liking.  The easiest
-way to do this is to use Emacs customization widget, which is accessible
-from the menubar.  Viper customization group is located under the
+in your Viper customization file.  If you want to change how patterns are
+highlighted, you will have to change @code{viper-search-face} to your liking.
+The easiest way to do this is to use Emacs customization widget, which is
+accessible from the menubar.  Viper customization group is located under the
 @emph{Emulations} customization group, which in turn is under the
 @emph{Editing} group (or simply by typing @kbd{:customize}).  All Viper
 faces are grouped together under Viper's
@@ -1201,7 +1194,7 @@ faces are grouped together under Viper's
 
 Try it: it is really simple!
 
-@node Abbreviation Facilities,Movement and Markers,Improved Search,Improvements over Vi
+@node Abbreviation Facilities
 @section Abbreviation Facilities
 
 @cindex abbrevs
@@ -1225,7 +1218,7 @@ keystroke, which appears earlier in the text.  Emacs binds this to
 @code{dabbrev-expand} to that key.
 Facilities like this make Vi's @kbd{:ab} command obsolete.
 
-@node Movement and Markers, New Commands, Abbreviation Facilities, Improvements over Vi
+@node Movement and Markers
 @section Movement and Markers
 
 @cindex Ex style motion
@@ -1233,8 +1226,8 @@ Facilities like this make Vi's @kbd{:ab} command obsolete.
 
 Viper can be set free from the line--limited movements in Vi, such as @kbd{l}
 refusing to move beyond the line, @key{ESC} moving one character back,
-etc.  These derive from Ex, which is a line editor.  If your @file{.viper}
-contains
+etc.  These derive from Ex, which is a line editor.  If your
+Viper customization file contains
 
 @example
 @code{(setq viper-ex-style-motion nil)}
@@ -1301,7 +1294,7 @@ switch files by simply doing @kbd{'a}.  If you set up a regimen for using
 Textmarkers, this is very useful.  Contents of textmarkers can be viewed
 by @kbd{[marker}.  (Contents of registers can be viewed by @kbd{]register}).
 
-@node New Commands, Useful Packages, Movement and Markers, Improvements over Vi
+@node New Commands
 @section New Commands
 
 These commands have no Vi analogs.
@@ -1314,9 +1307,10 @@ These two keys invoke many important Emacs functions.  For example, if you
 hit @kbd{C-x} followed by @kbd{2}, then the current window will be split
 into 2.  Except for novice users, @kbd{C-c} is also set to execute an Emacs
 command from the current major mode.  @key{ESC} will do the same, if you
-configure @key{ESC} as Meta by setting @code{viper-no-multiple-ESC} to @code{nil}
-in @file{.viper}.  @xref{Customization}.  @kbd{C-\} in Insert, Replace, or Vi
-states will make Emacs think @kbd{Meta} has been hit.@refill
+configure @key{ESC} as Meta by setting @code{viper-no-multiple-ESC} to
+@code{nil} in your Viper customization file.  @xref{Customization}.
+@kbd{C-\} in Insert, Replace, or Vi states will make Emacs think
+@kbd{Meta} has been hit.
 @item \
 @kindex @kbd{\}
 Escape to Emacs to execute a single Emacs command.  For instance,
@@ -1347,7 +1341,7 @@ argument is the region determined by the motion command that follows
 (indicated as <move>).
 Currently, @var{ch} can be one of @kbd{c}, @kbd{C}, @kbd{g}, @kbd{q}, and
 @kbd{s}.  For instance, @kbd{#qr} will prompt you for a string and then
-prepend this string to each line in the buffer.@refill
+prepend this string to each line in the buffer.
 @item # c
 @kindex @kbd{#c<move>}
 @cindex changing case
@@ -1363,7 +1357,7 @@ Emacs command @kbd{M-u} does the same for words.
 @item # g
 @kindex @kbd{#g<move>}
 Execute last keyboard macro for each line in the region
-(@code{viper-global-execute}).@refill
+(@code{viper-global-execute}).
 @item # q
 @kindex @kbd{#q<move>}
 Insert specified string at the beginning of each line in the region
@@ -1409,7 +1403,7 @@ Go to end of heading.
 @item g <@emph{movement command}>
 Search buffer for text delimited by movement command.  The canonical
 example is @kbd{gw} to search for the word under the cursor.
-@xref{Improved Search}, for details.@refill
+@xref{Improved Search}, for details.
 @item C-g and C-]
 @kindex @kbd{C-g}
 @kindex @kbd{C-]}
@@ -1471,10 +1465,10 @@ appropriate function to a function key on the keyboard and use that key.
 @xref{Viper Specials}, for details.
 
 @item Ex commands
-@findex  @kbd{:args}
-@findex  @kbd{:n}
-@findex  @kbd{:pwd}
-@findex  @kbd{:pre}
+@findex  @kbd{Ex args}
+@findex  @kbd{Ex n}
+@findex  @kbd{Ex pwd}
+@findex  @kbd{Ex pre}
 The commands @kbd{:args}, @kbd{:next}, @kbd{:pre} behave
 differently.  @kbd{:pwd} exists to get current directory.
 The commands @kbd{:b} and @kbd{:B} switch buffers around.  @xref{File and
@@ -1482,15 +1476,15 @@ Buffer Handling}, for details.
 There are also the new commands @kbd{:RelatedFile} and
 @kbd{PreviousRelatedFile} (which abbreviate to @kbd{R} and @kbd{P},
 respectively.  @xref{Viper Specials}, for details.
-@findex @kbd{:RelatedFile}
-@findex @kbd{:PreviousRelatedFile}
+@findex @kbd{Ex RelatedFile}
+@findex @kbd{Ex PreviousRelatedFile}
 @end table
 
 Apart from the new commands, many old commands have been enhanced.  Most
 notably, Vi style macros are much more powerful in Viper than in Vi.  @xref{Vi
 Macros}, for details.
 
-@node Useful Packages, ,New Commands, Improvements over Vi
+@node Useful Packages
 @section Useful Packages
 
 Some Emacs packages are mentioned here as an aid to the new Viper user, to
@@ -1568,10 +1562,10 @@ patches.
 @noindent
 Emacs Lisp archives exist on
 @samp{archive.cis.ohio-state.edu}
-and @samp{wuarchive.wustl.edu}@refill
+and @samp{wuarchive.wustl.edu}
 
 
-@node Customization,Commands,Improvements over Vi,Top
+@node Customization
 @chapter Customization
 
 @cindex customization
@@ -1582,29 +1576,29 @@ Customization can be done in 2 ways.
 @item
 @cindex initialization
 @cindex .viper
-Elisp code in a @file{.viper} file in your home directory.  Viper
-loads @file{.viper} just before it does the binding for mode
-hooks.  This is recommended for experts only.
+Elisp code in a @file{~/.emacs.d/viper} (or @file{~/.viper}) file.
+Viper loads this file just before it does the binding for mode hooks.
+This is recommended for experts only.
 @item
 @cindex .emacs
 Elisp code in your @file{.emacs} file before and after the @code{(require
 'viper)} line.  This method is @emph{not} recommended, unless you know what
 you are doing.  Only two variables, @code{viper-mode} and
 @code{viper-custom-file-name}, are supposed to be customized in @file{.emacs},
-prior to loading Viper (i.e., prior to @code{(require 'viper)} command.@refill
+prior to loading Viper (i.e., prior to @code{(require 'viper)} command.
 @item
-@cindex :customize
+@cindex Ex customize
 By executing the @kbd{:customize} Ex command. This takes you to the Emacs
 customization widget, which lets you change the values of Viper
 customizable variables easily. This method is good for novice and
 experts alike. The customization code in the form of Lisp commands will be
 placed in @file{~/.emacs} or some other customization file depending on the
-version of Emacs that you use. Still, it is recommended to separate
+version of Emacs that you use.  Still, it is recommended to separate
 Viper-related customization produced by the Emacs customization widget
-and keep it in the @file{.viper} file.
+and keep it in your Viper customization file.
 
 Some advanced customization cannot be accomplished this way, however, and
-has to be done in Emacs Lisp in the @file{.viper} file.  For the common
+has to be done in Emacs Lisp in your Viper customization file.  For the common
 cases, examples are provided that you can use directly.
 @end itemize
 
@@ -1617,12 +1611,12 @@ cases, examples are provided that you can use directly.
 * Vi Macros::                    How to do Vi style macros.
 @end menu
 
-@node Rudimentary Changes,Key Bindings,Customization,Customization
+@node Rudimentary Changes
 @section Rudimentary Changes
 
 @cindex setting variables
 @cindex variables for customization
-@findex @kbd{:set}
+@findex @kbd{Ex set}
 
 An easy way to customize Viper is to change the values of constants used in
 Viper.  Here is the list of the constants used in Viper and their default
@@ -1717,7 +1711,7 @@ If not @code{nil}, search wraps around the end/beginning of buffer.
 @item viper-search-scroll-threshold 2
 If search lands within this many lines of the window top or bottom, the
 window will be scrolled up or down by about 1/7-th of its size, to reveal
-the context.  If the value is negative---don't scroll.
+the context.  If the value is negativedon't scroll.
 @item viper-tags-file-name "TAGS"
 The name of the file used as the tag table.
 @item viper-re-query-replace nil
@@ -1761,10 +1755,10 @@ cases.  @code{nil} means you either has to invoke @code{viper-mode} manually
 for each buffer (or you can add @code{viper-mode} to the appropriate major mode
 hooks using @code{viper-load-hook}).
 
-This option must be set in the file @file{~/.viper}.
-@item viper-custom-file-name "~/.viper"
+This option must be set in your Viper customization file.
+@item viper-custom-file-name "~/.emacs.d/viper"
 File used for Viper-specific customization.
-Change this setting, if you want.  Must be set in @file{.emacs} (not @file{.viper}!)
+Change this setting, if you want.  Must be set in @file{.emacs}
 before Viper is loaded.  Note that you
 have to set it as a string inside double quotes.
 @item viper-spell-function 'ispell-region
@@ -1815,8 +1809,8 @@ Both these macros are bound (as Viper macros) to
 @code{viper-repeat-from-history},
 which checks the second key by which it is invoked to see which of the
 previous commands to invoke.  Viper binds @kbd{f12 1} and @kbd{f12 2} only,
-but the user can bind more in @file{~/.viper}.  @xref{Vi Macros}, for how to do
-this.
+but the user can bind more in his/her Viper customization file.
+@xref{Vi Macros}, for how to do this.
 @item viper-keep-point-on-undo nil
 If not @code{nil}, Viper tries to not move point when undoing commands.
 Instead, it will briefly move the cursor to the place where change has
@@ -1841,12 +1835,12 @@ replacement regions, you can change @code{viper-replace-overlay-face} by
 specifying a new face.  (Emacs faces are described in the Emacs Lisp
 reference.)  On a color display, the following customization method is
 usually most effective:
-@example
+@smallexample
 (set-face-foreground viper-replace-overlay-face "DarkSlateBlue")
 (set-face-background viper-replace-overlay-face "yellow")
-@end example
+@end smallexample
 For a complete list of colors available to you, evaluate the expression
-@code{(x-defined-colors)}.  (Type it in the buffer @code{*scratch*} and then
+@code{(x-defined-colors)}.  (Type it in the buffer @file{*scratch*} and then
 hit the @kbd{C-j} key.
 
 @item viper-replace-overlay-cursor-color  "Red"
@@ -1881,7 +1875,7 @@ emulate the standard Vi behavior, which supports only intra-line
 replacement regions (and multi-line replacement regions are deleted).
 @item viper-toggle-key "\C-z"
 Specifies the key used to switch from Emacs to Vi and back.
-Must be set in @file{.viper}.  This variable can't be
+Must be set in your Viper customization file.  This variable can't be
 changed interactively after Viper is loaded.
 
 In Insert state, this key acts as a temporary escape to Vi state, i.e., it
@@ -1914,7 +1908,7 @@ the last chance to do customization before Viper is up and running.
 @noindent
 You can reset some of these constants in Viper with the Ex command @kbd{:set}
 (when so indicated in the table).  Or you
-can include a line like this in your @file{.viper} file:
+can include a line like this in your Viper customization file:
 @example
 (setq viper-case-fold-search t)
 @end example
@@ -1958,7 +1952,7 @@ can include a line like this in your @file{.viper} file:
 @vindex @code{viper-replace-state-hook}
 @vindex @code{viper-emacs-state-hook}
 
-@node Key Bindings, Packages that Change Keymaps, Rudimentary Changes,Customization
+@node Key Bindings
 @section Key Bindings
 
 @cindex key bindings
@@ -2026,7 +2020,7 @@ state.
 If you want to
 bind a key, say @kbd{C-v}, to the function that scrolls
 page down and to make @kbd{0} display information on the current buffer,
-putting this in @file{.viper} will do the trick in Vi state:
+putting this in your Viper customization file will do the trick in Vi state:
 @example
 (define-key viper-vi-global-user-map "\C-v" 'scroll-down)
 @end example
@@ -2047,7 +2041,8 @@ can write this:
 @noindent
 To customize the binding for @kbd{C-h} in Insert state:
 @example
-(define-key viper-insert-global-user-map "\C-h" 'my-del-backwards-function)
+(define-key viper-insert-global-user-map "\C-h"
+  'my-del-backwards-function)
 @end example
 @noindent
 
@@ -2074,11 +2069,12 @@ keys necessary in that keymap, and put
 @end example
 
 @noindent
-in @file{~/.viper}.  To do the same in Vi and Insert states, you should use
-@code{vi-state} and @code{insert-state}.  Changes in Insert state are also
-in effect in Replace state.  For instance, suppose that the user wants to
-use @kbd{dd} in Vi state under Dired mode to delete files, @kbd{u} to unmark
-files, etc.  The following code in @file{~/.viper} will then do the job:
+in your Viper customization file.  To do the same in Vi and Insert states, you
+should use @code{vi-state} and @code{insert-state}.  Changes in Insert state
+are also in effect in Replace state.  For instance, suppose that the user wants
+to use @kbd{dd} in Vi state under Dired mode to delete files, @kbd{u} to unmark
+files, etc.  The following code in the Viper customization file will then do
+the job:
 
 @example
 (setq my-dired-modifier-map (make-sparse-keymap))
@@ -2096,7 +2092,8 @@ Dired functions, the trick can be accomplished via the following code:
 (setq my-dired-vi-purist-map (make-sparse-keymap))
 (define-key my-dired-vi-purist-map "k" 'viper-previous-line)
 (define-key my-dired-vi-purist-map "l" 'viper-forward-char)
-(viper-modify-major-mode 'dired-mode 'emacs-state my-dired-vi-purist-map)
+(viper-modify-major-mode 'dired-mode
+                         'emacs-state my-dired-vi-purist-map)
 @end example
 
 Yet another way to customize key bindings in a major mode is to edit the
@@ -2114,7 +2111,7 @@ bound to, unless these keys are typed in quick succession.  So, with macros,
 one can use the normal keys alongside with the macros.  If per-mode
 modifications are needed, the user can try both ways and see which one is
 more convenient.
-@findex @kbd{:map}
+@findex @kbd{Ex map}
 @xref{Vi Macros}, for details.
 
 Note: in major modes that come up in @emph{Emacs state} by default, the
@@ -2194,8 +2191,8 @@ bindings in Emacs.
 @findex @code{viper-add-local-keys}
 @findex @code{viper-zap-local-keys}
 
-@node Packages that Change Keymaps,Viper Specials,Key Bindings,Customization
-@subsection Packages that Change Keymaps
+@node Packages that Change Keymaps
+@section Packages that Change Keymaps
 @cindex C-c and Viper
 @cindex Viper and C-c
 
@@ -2281,7 +2278,7 @@ can happen only in the beginning, when the minor mode kicks in.  Typing
 several such minor modes and takes care of them, so the above trick
 is usually not necessary.  If you find that some minor mode, e.g.,
 @code{nasty-mode} interferes with Viper, putting the following in
-@file{.viper} should fix the problem:
+your Viper customization file should fix the problem:
 @lisp
 (viper-harness-minor-mode "nasty-mode")
 @end lisp
@@ -2323,7 +2320,7 @@ compatible with Viper is to have the file @file{my-mode.el} include the followin
 @findex @code{remove-hook}
 @findex @code{add-hook}
 
-@node Viper Specials,Vi Macros,Packages that Change Keymaps,Customization
+@node Viper Specials
 @section Viper Specials
 
 Viper extends Vi with a number of useful features.  This includes various
@@ -2338,8 +2335,8 @@ document.  Other features are explained here.
 @item viper-buffer-search-char nil
 Enable buffer search.  Explicit call to @code{viper-buffer-search-enable}
 sets @code{viper-buffer-search-char} to @kbd{g}.  Alternatively, the user can
-set @code{viper-buffer-search-char} in @file{.viper} to a key sequence
-to be used for buffer search.  There is no need to call
+set @code{viper-buffer-search-char} in his/her Viper customization file to a key
+sequence to be used for buffer search.  There is no need to call
 @code{viper-buffer-search-enable} in that case.
 @findex @code{viper-buffer-search-enable}
 @vindex @code{viper-buffer-search-char}
@@ -2362,8 +2359,8 @@ If you hit something other than @kbd{/} after the first @kbd{/} or if the
 second @kbd{/} doesn't follow quickly enough, then Viper will issue the
 usual prompt @kbd{/} and will wait for input, as usual in Vi.
 If you don't like this behavior, you can ``unrecord'' these macros in your
-@file{~/.viper} file.  For instance, if you don't like the above feature, put
-this in @file{~/.viper}:
+Viper customization file.  For instance, if you don't like the above
+feature, put this in the file:
 @example
 (viper-set-searchstyle-toggling-macros 'undefine)
 @end example
@@ -2450,7 +2447,7 @@ the direction of newer insertions.  Hitting @kbd{C-c M-p} or @kbd{C-c M-n}
 in succession
 will undo the previous insertion from the ring and insert the next item on
 the ring.  If a larger ring size is needed, change the value of the above
-variable in the @file{~/.viper} file.
+variable in the Viper customization file.
 
 Since typing these sequences of keys may be tedious, it is suggested that the
 user should bind a function key, such as @kbd{f31}, as follows:
@@ -2521,7 +2518,7 @@ putting
 (copy-face 'default 'viper-minibuffer-insert-face)
 (copy-face 'default 'viper-minibuffer-emacs-face)
 @end example
-in the @file{~/.viper} file or through the customization widget, as
+in their Viper customization file or through the customization widget, as
 described above.  However, in that case, the user will not have any
 indication of the current Viper state in the minibuffer.  (This is important
 if the user accidentally switches to another Viper state by typing @key{ESC} or
@@ -2554,8 +2551,8 @@ be associated with the master file.  Then, the new Ex command
 another, so you can edit them.  If a file is not in any Emacs buffer, it
 will be visited.  The command @kbd{PreviousRelatedFile} (abbr., @kbd{:P})
 goes through the file list in the opposite direction.
-@findex @kbd{:RelatedFile}
-@findex @kbd{:PreviousRelatedFile}
+@findex @kbd{Ex RelatedFile}
+@findex @kbd{Ex PreviousRelatedFile}
 
 These commands are akin to @kbd{:n} and @kbd{:N}, but they allow the user to
 focus on relevant files only.
@@ -2593,8 +2590,8 @@ Note: while loading initially, Viper binds this mouse action only if it is
 not already bound to something else.  If you want to use the mouse-search
 feature, and the @kbd{Meta-Shift-Mouse-1} mouse action is already bound to
 something else, you can rebind the mouse-search feature by setting
-@code{viper-mouse-search-key} to something else in your @code{~/.viper}
-file:
+@code{viper-mouse-search-key} to something else in
+your Viper customization file:
 @lisp
 (setq viper-mouse-search-key '(meta 1))
 @end lisp
@@ -2606,7 +2603,8 @@ Meta key and clicking mouse button 1.  The allowed values of
 
 If the requested mouse action (e.g., (meta 1)) is already taken for other
 purposes then you have to confirm your intention by placing the following
-command in @code{~/.viper} after setting @code{viper-mouse-search-key}:
+command in your Viper customization file after setting
+@code{viper-mouse-search-key}:
 @lisp
 (viper-bind-mouse-search-key 'force)
 @end lisp
@@ -2648,13 +2646,13 @@ case of a triple-click, the prefix argument is ignored.)
 Note: while loading initially, Viper binds this mouse action only if it not
 already bound to something else.  If you want to use this feature and the
 default mouse action is already bound, you can rebind mouse-insert by
-placing this command in @code{~/.viper}:
+placing this command in your Viper customization file:
 @lisp
 (setq viper-mouse-insert-key '(meta 2))
 @end lisp
 If you want to bind mouse-insert to an action even if this action is
 already taken for other purposes in Emacs, then you should add this command
-to @code{~/.viper}, after setting @code{viper-mouse-insert-key}:
+to your Viper customization file, after setting @code{viper-mouse-insert-key}:
 @lisp
 (viper-bind-mouse-insert-key 'force)
 @end lisp
@@ -2683,7 +2681,7 @@ just left.  This lets one use these functions in a multi-frame
 configuration.  However, this may require some getting used to.  For
 instance, if you are typing in a frame, A, and then move the mouse to frame
 B and click to invoke mouse search, search (or insertion) will be performed
-in frame A.  To perform search/insertion in frame B, you will first have to
+in frame A@.  To perform search/insertion in frame B, you will first have to
 shift focus there, which doesn't happen until you type a character or
 perform some other action in frame B---mouse search doesn't shift focus.
 
@@ -2708,7 +2706,7 @@ you will then have to write such a function and make it known to your
 Emacs.  The function @code{viper-surrounding-word} in @file{viper.el} can be
 used as a guiding example.
 
-@node Vi Macros, ,Viper Specials,Customization
+@node Vi Macros
 @section Vi Macros
 
 @cindex Vi macros
@@ -2786,12 +2784,12 @@ macros) lets the user define keyboard macros that ask for confirmation or
 even prompt the user for input and then continue.  To do this, one should
 type @kbd{C-x q} (for confirmation) or @kbd{C-u C-x q} (for prompt).
 For details, @pxref{Keyboard Macro Query,,Customization,emacs,The GNU Emacs
-Manual} @refill
+Manual}.
 
-When the user finishes defining a macro (which is done by typing @kbd{C-x)} ---
+When the user finishes defining a macro (which is done by typing @kbd{C-x)},
 a departure from Vi), you will be asked whether you want this
 macro to be global, mode-specific, or buffer-specific.  You will also be
-given a chance to save the macro in your @file{~/.viper} file.
+given a chance to save the macro in your Viper customization file.
 This is the easiest way to save a macro and make
 it permanently available.  If you work your startup files with bare hands,
 here is how Viper saves the above macro so that it will be
@@ -2840,8 +2838,8 @@ the latter says that the macro is to be defined for all buffers
 
 For convenience, Viper also lets you define Vi-style macros in its Emacs
 state.  There is no Ex command, like @kbd{:map} and @kbd{:map!} for doing
-this, but the user can include such a macro in the @file{~/.viper} file.  The
-only thing is that the @code{viper-record-kbd-macro} command should specify
+this, but the user can include such a macro in the Viper customization file.
+The only thing is that the @code{viper-record-kbd-macro} command should specify
 @code{emacs-state} instead of @code{vi-state} or @code{insert-state}.
 
 The user can get rid of a macro either by using the Ex commands @kbd{:unmap}
@@ -2905,8 +2903,9 @@ Vi and Emacs commands, so that you could see what will happen each time the
 macro is executed.  Suppose now we wanted to bind the key sequence
 @kbd{f13 f13} to the command @code{eval-last-sexp}.  To accomplish this, we
 can type @kbd{M-x eval-last-sexp} followed by @kbd{C-x )}.
-If you answer positively to Viper's offer to save this macro in @file{~/.viper}
-for future uses, the following will be inserted in that file:
+If you answer positively to Viper's offer to save this macro in your
+Viper customization file for future uses, the following will be inserted
+in that file:
 
 @example
 (viper-record-kbd-macro [f16 f16] 'vi-state
@@ -2978,8 +2977,8 @@ The rate at which the user must type keys in order for them to be
 recognized as a timeout macro is controlled by the variable
 @code{viper-fast-keyseq-timeout}, which defaults to 200 milliseconds.
 
-For the most part, Viper macros defined in @file{~/.viper} can be shared
-between X and TTY modes.
+For the most part, Viper macros defined in the Viper customization file can
+be shared between X and TTY modes.
 The problem with TTY may be that the function keys there generate sequences
 of events instead of a single event (as under a window system).
 Emacs maps some of these sequences back to the logical keys
@@ -2995,12 +2994,12 @@ Finally, Viper provides a function that conveniently displays all macros
 currently defined.  To see all macros along with their definitions, type
 @kbd{M-x viper-describe-kbd-macros}.
 
-@node Commands,,Customization,Top
+@node Commands
 @chapter Commands
 
 This section is a semi-automatically bowdlerized version of the Vi
 reference created by @* @samp{maart@@cs.vu.nl} and others.  It can be
-found on the Vi archives.  This reference has been adapted for Viper.@refill
+found on the Vi archives.  This reference has been adapted for Viper.
 
 @menu
 * Groundwork::                  Textual Conventions and Viper basics
@@ -3014,15 +3013,14 @@ found on the Vi archives.  This reference has been adapted for Viper.@refill
 * Mouse-bound Commands::        Search and insertion of text
 @end menu
 
-@node Groundwork, Text Handling, Commands, Commands
-@comment  node-name,  next,  previous,  up
+@node Groundwork
 @section Groundwork
 
 The VI command set is based on the idea of combining motion commands
 with other commands.  The motion command is used as a text region
 specifier for other commands.
 We classify motion commands into @dfn{point commands} and
-@dfn{line commands}.@refill
+@dfn{line commands}.
 
 @cindex point commands
 
@@ -3211,7 +3209,7 @@ and they don't look into the value of variable
 syntax tables in order to not thwart the various major modes that set these
 tables.
 
-The usual Emacs convention is used to indicate Control Characters, i.e
+The usual Emacs convention is used to indicate Control Characters, i.e.,
 C-h for Control-h.  @emph{Do not confuse this with a sequence of separate
 characters
 C, -, h!!!} The @kbd{^} is itself, never used to indicate a
@@ -3225,7 +3223,7 @@ ends at line 135.  There is no need to type the line numbers, since Viper
 inserts them automatically in front of the Ex command.
 @cindex Ex commands
 
-@node Text Handling, Display, Groundwork, Commands
+@node Text Handling
 @section Text Handling
 
 @menu
@@ -3240,7 +3238,7 @@ inserts them automatically in front of the Ex command.
 * Undoing::                     Multiple Undo, Backups
 @end menu
 
-@node Move Commands,Marking,,Text Handling
+@node Move Commands
 @subsection Move Commands
 
 @cindex movement commands
@@ -3267,7 +3265,7 @@ inserts them automatically in front of the Ex command.
 @item <count>  $
 To the end of line <count> from the cursor.
 @item <count>  ^
-To the first CHAR <count> - 1 lines lower.
+To the first CHAR <count> @minus{} 1 lines lower.
 @item <count>  -
 To the first CHAR <count> lines higher.
 @item <count>  +  <cr>
@@ -3366,7 +3364,8 @@ this function.
 Find the next bracket/parenthesis/brace and go to its match.
 By default, Viper ignores brackets/parentheses/braces that occur inside
 parentheses.  You can change this by setting
-@code{viper-parse-sexp-ignore-comments} to @code{nil} in your @file{.viper} file.
+@code{viper-parse-sexp-ignore-comments} to @code{nil} in your Viper
+customization file.
 This option can also be toggled interactively if you quickly hit @kbd{%%%}.
 
 This latter feature is implemented as a vi-style keyboard macro.  If you
@@ -3377,7 +3376,7 @@ don't want this macro, put
 @end example
 @findex @code{viper-set-parsing-style-toggling-macro}
 
-in your @file{~/.viper} file.
+in your Viper customization file.
 
 @end table
 @kindex @kbd{%}
@@ -3436,7 +3435,7 @@ in your @file{~/.viper} file.
 @kindex @kbd{l}
 @vindex @code{viper-parse-sexp-ignore-comments}
 
-@node Marking,Appending Text,Move Commands,Text Handling
+@node Marking
 @subsection Marking
 
 Emacs mark is referred to in the region specifiers @kbd{r} and @kbd{R}.
@@ -3472,7 +3471,7 @@ Exchange point and mark.
 Exchange point and mark and go to the first CHAR on line.
 @item '<a-z>
 Go to specified Viper mark.
-@item
+@item `<a-z>
 Go to specified Viper mark and go to the first CHAR on line.
 @end table
 @kindex @kbd{m<a-z>}
@@ -3481,14 +3480,14 @@ Go to specified Viper mark and go to the first CHAR on line.
 @kindex @kbd{m<}
 @kindex @kbd{m,}
 @kindex @kbd{m^}
-@findex @kbd{:mark}
-@findex @kbd{:k}
+@findex @kbd{Ex mark}
+@findex @kbd{Ex k}
 @kindex @kbd{''}
 @kindex @kbd{``}
 @kindex @kbd{`<a-z>}
 @kindex @kbd{'<a-z>}
 
-@node  Appending Text, Editing in Insert State, Marking,Text Handling
+@node  Appending Text
 @subsection Appending Text
 
 @xref{Options}, to see how to change tab and shiftwidth size.  See the GNU
@@ -3551,7 +3550,7 @@ then be executed by typing `@kbd{.}'.
 
 Since typing the above sequences of keys may be tedious, the
 functions doing the perusing can be bound to unused keyboard keys in the
-@file{~/.viper} file.  @xref{Viper Specials}, for details.
+Viper customization file.  @xref{Viper Specials}, for details.
 @end table
 @kindex @kbd{C-c M-p}
 @kindex @kbd{C-c M-n}
@@ -3570,7 +3569,7 @@ functions doing the perusing can be bound to unused keyboard keys in the
 @kindex @kbd{A}
 @kindex @kbd{a}
 
-@node Editing in Insert State, Deleting Text, Appending Text,Text Handling
+@node Editing in Insert State
 @subsection Editing in Insert State
 
 Minibuffer can be edited similarly to Insert state, and you can switch
@@ -3596,7 +3595,7 @@ current line.
 @kindex @kbd{C-w}
 @kindex @kbd{C-v}
 
-@node Deleting Text, Changing Text, Editing in Insert State, Text Handling
+@node Deleting Text
 @subsection Deleting Text
 
 
@@ -3639,7 +3638,7 @@ Shift <count> lines one shiftwidth to the left.
 @kindex @kbd{X}
 @kindex @kbd{x}
 
-@node Changing Text, Search and Replace, Deleting Text,Text Handling
+@node Changing Text
 @subsection Changing Text
 
 @cindex joining lines
@@ -3649,10 +3648,10 @@ Shift <count> lines one shiftwidth to the left.
 
 @table @kbd
 @item <count>  r<char>
-Replace <count> chars by <char> - no <esc>.
+Replace <count> chars by <char>; no <esc>.
 @item <count>  R
 Overwrite the rest of the line,
-appending change @var{count - 1} times.
+appending change @var{count} @minus{} 1 times.
 @item <count>  s
 Substitute <count> chars.
 @item <count>  S
@@ -3662,7 +3661,7 @@ Change from begin to endpoint of <count><move>.
 @item <count>  cc
 Change <count> lines.
 @item <count>  C
-The rest of the line and <count> - 1 next lines.
+The rest of the line and <count> @minus{} 1 next lines.
 @item <count>  =<move>
 Reindent the region described by move.
 @item <count>  ~
@@ -3672,7 +3671,7 @@ Join <count> lines (default 2).
 @item  :[x,y]s/<pat>/<repl>/<f>
 Substitute (on lines x through y) the pattern
 <pat> (default the last pattern) with <repl>.  Useful
-flags <f> are @samp{g} for @samp{global} (i.e.@: change every
+flags <f> are @samp{g} for @samp{global} (i.e., change every
 non-overlapping occurrence of <pat>) and @samp{c} for
 @samp{confirm} (type @samp{y} to confirm a particular
 substitution, else @samp{n} ).  Instead of @kbd{/} any
@@ -3696,7 +3695,7 @@ Same as @kbd{:copy}.
 @item  :[x,y]move [z]
 Move text between @kbd{x} and @kbd{y} to the position after @kbd{z}.
 @item  &
-Repeat latest Ex substitute command, e.g.
+Repeat latest Ex substitute command, e.g.,
 @kbd{:s/wrong/right}.
 @item :x,yp
 @itemx :g/Pat/p
@@ -3731,11 +3730,11 @@ destructive Vi commands.
 @kindex @kbd{#c<move>}
 @kindex @kbd{&}
 @kindex @kbd{\&}
-@findex @kbd{:substitute/<pat>/<repl>/<f>}
-@findex @kbd{:s/<pat>/<repl>/<f>}
-@findex @kbd{:copy [z]}
-@findex @kbd{:t [z]}
-@findex @kbd{:move [z]}
+@findex @kbd{Ex substitute/<pat>/<repl>/<f>}
+@findex @kbd{Ex s/<pat>/<repl>/<f>}
+@findex @kbd{Ex copy [z]}
+@findex @kbd{Ex t [z]}
+@findex @kbd{Ex move [z]}
 @kindex @kbd{J}
 @kindex @kbd{~}
 @kindex @kbd{=<move>}
@@ -3747,7 +3746,7 @@ destructive Vi commands.
 @kindex @kbd{R}
 @kindex @kbd{r<char>}
 
-@node Search and Replace, Yanking, Changing Text,Text Handling
+@node Search and Replace
 @subsection Search and Replace
 
 @xref{Groundwork}, for Ex address syntax.  @xref{Options}, to see how to
@@ -3796,7 +3795,7 @@ Search in the tags file where <name> is defined (file, line), and go to it.
 @item  :[x,y]s/<pat>/<repl>/<f>
 Substitute (on lines x through y) the pattern <pat> (default the last
 pattern) with <repl>.  Useful
-flags <f> are @samp{g} for @samp{global} (i.e.@: change every
+flags <f> are @samp{g} for @samp{global} (i.e., change every
 non-overlapping occurrence of <pat>) and @samp{c} for
 @samp{confirm} (type @samp{y} to confirm a particular
 substitution, else @samp{n}).  Instead of @kbd{/} any
@@ -3806,7 +3805,7 @@ delimiter.
 Note: @emph{The newline character (inserted as @kbd{C-qC-j})
 can be used in <repl>}.
 @item  &
-Repeat latest Ex substitute command, e.g.@: @kbd{:s/wrong/right}.
+Repeat latest Ex substitute command, e.g., @kbd{:s/wrong/right}.
 @item :global /<pattern>/<ex-command>
 @itemx :g /<pattern>/<ex-command>
 Execute <ex-command> on all lines that match <pattern>.
@@ -3815,14 +3814,14 @@ Execute <ex-command> on all lines that match <pattern>.
 Execute <ex-command> on all lines that do not match <pattern>.
 @end table
 @kindex @kbd{&}
-@findex @kbd{:substitute/<pat>/<repl>/<f>}
+@findex @kbd{Ex substitute/<pat>/<repl>/<f>}
 @kindex @kbd{Q}
 @kindex @kbd{#g<move>}
-@findex @kbd{:v}
-@findex @kbd{:g}
-@findex @kbd{:global}
-@findex @kbd{:vglobal}
-@findex @kbd{:tag <name>}
+@findex @kbd{Ex v}
+@findex @kbd{Ex g}
+@findex @kbd{Ex global}
+@findex @kbd{Ex vglobal}
+@findex @kbd{Ex tag <name>}
 @kindex @kbd{%}
 @kindex @kbd{N}
 @kindex @kbd{n}
@@ -3830,7 +3829,7 @@ Execute <ex-command> on all lines that do not match <pattern>.
 @kindex @kbd{?<string>}
 @kindex @kbd{/<string>}
 
-@node Yanking,Undoing,Search and Replace,Text Handling
+@node Yanking
 @subsection Yanking
 
 @cindex cut and paste
@@ -3875,9 +3874,9 @@ Put the contents of the (default undo) buffer
 @kindex @kbd{"<a-z>y<move>}
 @kindex @kbd{y<move>}
 @kindex @kbd{yank}
-@findex @kbd{:yank}
+@findex @kbd{Ex yank}
 
-@node Undoing,, Yanking,Text Handling
+@node Undoing
 @subsection Undoing
 
 @cindex undo
@@ -3896,14 +3895,14 @@ Re-edit a messed-up file.
 Recover file from autosave.  Viper also creates backup files
 that have a @samp{~} appended to them.
 @end table
-@findex @kbd{:rec}
-@findex @kbd{:e!}
-@findex @kbd{:q!}
+@findex @kbd{Ex rec}
+@findex @kbd{Ex e!}
+@findex @kbd{Ex q!}
 @kindex @kbd{.}
 @kindex @kbd{U}
 @kindex @kbd{u}
 
-@node Display, File and Buffer Handling, Text Handling, Commands
+@node Display
 @section Display
 
 @cindex scrolling
@@ -3915,7 +3914,7 @@ give file name, status, current line number
 and relative position.@*
 At user levels 2 and higher, abort the current command.
 @item C-c g
-Give file name, status, current line number and relative position -- all
+Give file name, status, current line number and relative position---all
 user levels.
 @item C-l
 Refresh the screen.
@@ -3962,7 +3961,7 @@ Put line <count> in the center of the window
 @kindex @kbd{C-g}
 
 
-@node File and Buffer Handling, Mapping, Display,Commands
+@node File and Buffer Handling
 @section File and Buffer Handling
 
 @cindex multiple files
@@ -3991,7 +3990,7 @@ Write the file.  Viper makes sure that a final newline is always added to
 any file where this newline is missing.  This is done by setting Emacs
 variable @code{require-final-newline} to @code{t}.  If you don't like this
 feature, use @code{setq-default} to set @code{require-final-newline} to
-@code{nil}.  This must be done in @file{.viper} file.
+@code{nil}.  This must be done in the Viper customization file.
 @item :[x,y] w <name>
 Write to the file <name>.
 @item :[x,y] w>> <name>
@@ -4024,7 +4023,7 @@ Save and kill buffer.
 @item :x!@: [<file>]
 @kbd{:w![<file>]} and @kbd{:q}.
 @item :pre
-Preserve the file -- autosave buffers.
+Preserve the file---autosave buffers.
 @item :rec
 Recover file from autosave.
 @item :f [<file>]
@@ -4065,7 +4064,7 @@ switch in another window.  Buffer completion is supported.
 The variable @var{viper-read-buffer-function} controls which function is
 actually used to read the buffer name. The default is @code{read-buffer},
 but better alternatives are also available in Emacs (e.g.,
-@code{iswitchb-read-buffer}).
+@code{ido-read-buffer}).
 @vindex @var{viper-read-buffer-function}
 @item :B
 Like @kbd{:b}, but the meaning of @var{ex-cycle-other-window} is reversed.
@@ -4077,44 +4076,44 @@ is typed in minibuffer.  File completion and history are supported.
 @end table
 @kindex @kbd{v}
 @kindex @kbd{V}
-@findex @kbd{:args}
-@findex @kbd{:rew}
+@findex @kbd{Ex args}
+@findex @kbd{Ex rew}
 @kindex @kbd{C-^}
-@findex @kbd{:e!@: [<files>]}
-@findex @kbd{:e [<files>]}
-@findex @kbd{:edit [<files>]}
-@findex @kbd{:edit!@: [<files>]}
-@findex @kbd{:q!}
-@findex @kbd{:q}
-@findex @kbd{:quit}
-@findex @kbd{:quit!}
-@findex @kbd{:f}
-@findex @kbd{:rec}
-@findex @kbd{:r}
-@findex @kbd{:read}
-@findex @kbd{:pre}
+@findex @kbd{Ex e!@: [<files>]}
+@findex @kbd{Ex e [<files>]}
+@findex @kbd{Ex edit [<files>]}
+@findex @kbd{Ex edit!@: [<files>]}
+@findex @kbd{Ex q!}
+@findex @kbd{Ex q}
+@findex @kbd{Ex quit}
+@findex @kbd{Ex quit!}
+@findex @kbd{Ex f}
+@findex @kbd{Ex rec}
+@findex @kbd{Ex r}
+@findex @kbd{Ex read}
+@findex @kbd{Ex pre}
 @kindex @kbd{ZZ}
-@findex @kbd{:wq}
-@findex @kbd{:w <file>}
-@findex @kbd{:w!@: <file>}
-@findex @kbd{:w >> <file>}
-@findex @kbd{:write <file>}
-@findex @kbd{:write!@: <file>}
-@findex @kbd{:write >> <file>}
-@findex @kbd{:W}
-@findex @kbd{:WW}
-@findex @kbd{:Write}
-@findex @kbd{:WWrite}
-@findex @kbd{:WWrite}
-@findex @kbd{:x}
-@findex @kbd{:x!}
-@findex @kbd{:suspend}
-@findex @kbd{:stop}
-@findex @kbd{:n [<count> | <file>]}
-@findex @kbd{:cd [<dir>]}
-@findex @kbd{:pwd}
-
-@node Mapping, Shell Commands, File and Buffer Handling, Commands
+@findex @kbd{Ex wq}
+@findex @kbd{Ex w <file>}
+@findex @kbd{Ex w!@: <file>}
+@findex @kbd{Ex w >> <file>}
+@findex @kbd{Ex write <file>}
+@findex @kbd{Ex write!@: <file>}
+@findex @kbd{Ex write >> <file>}
+@findex @kbd{Ex W}
+@findex @kbd{Ex WW}
+@findex @kbd{Ex Write}
+@findex @kbd{Ex WWrite}
+@findex @kbd{Ex WWrite}
+@findex @kbd{Ex x}
+@findex @kbd{Ex x!}
+@findex @kbd{Ex suspend}
+@findex @kbd{Ex stop}
+@findex @kbd{Ex n [<count> | <file>]}
+@findex @kbd{Ex cd [<dir>]}
+@findex @kbd{Ex pwd}
+
+@node Mapping
 @section Mapping
 
 @cindex key bindings
@@ -4176,12 +4175,12 @@ Show contents of register.
 @kindex @kbd{@@#}
 @kindex @kbd{@@@@}
 @kindex @kbd{@@<a-z>}
-@findex @kbd{:unmap <char>}
-@findex @kbd{:map <char> <seq>}
-@findex @kbd{:unmap!@: <char>}
-@findex @kbd{:map!@: <char> <seq>}
+@findex @kbd{Ex unmap <char>}
+@findex @kbd{Ex map <char> <seq>}
+@findex @kbd{Ex unmap!@: <char>}
+@findex @kbd{Ex map!@: <char> <seq>}
 
-@node Shell Commands, Options, Mapping, Commands
+@node Shell Commands
 @section Shell Commands
 
 @cindex % (Current file)
@@ -4194,7 +4193,7 @@ the whole file.
 @cindex @samp{#} (Previous file)
 Similarly, @samp{#} expands to the previous file.  The previous file is the
 first file in @kbd{:args} listing.  This defaults to the previous file in
-the VI sense if you have one window.@refill
+the VI sense if you have one window.
 
 Symbols @samp{%} and @samp{#} are also used in the Ex commands @kbd{:e} and
 @kbd{:r <shell-cmd>}.  The commands @kbd{:w} and the regular @kbd{:r
@@ -4235,19 +4234,19 @@ current).
 @item :make
 Run the make command in the current directory.
 @end table
-@findex @kbd{:<address>r <name>}
-@findex @kbd{:<address>r !<cmd>}
+@findex @kbd{Ex <address>r <name>}
+@findex @kbd{Ex <address>r !<cmd>}
 @findex @kbd{!<cmd>}
 @findex @kbd{!!<cmd>}
 @findex @kbd{!<move><cmd>}
-@findex @kbd{:w !<cmd>}
-@findex @kbd{:x,y w !<cmd>}
-@findex @kbd{:!!@: <args>}
-@findex @kbd{:!<cmd>}
-@findex @kbd{:sh}
-@findex @kbd{:make}
-
-@node Options,Emacs Related Commands,Shell Commands,Commands
+@findex @kbd{Ex w !<cmd>}
+@findex @kbd{Ex x,y w !<cmd>}
+@findex @kbd{Ex !!@: <args>}
+@findex @kbd{Ex !<cmd>}
+@findex @kbd{Ex sh}
+@findex @kbd{Ex make}
+
+@node Options
 @section Options
 
 @cindex Vi options
@@ -4256,7 +4255,7 @@ Run the make command in the current directory.
 @item autoindent
 @itemx ai
 @cindex autoindent
-autoindent -- In append mode after a <cr> the
+autoindent: In append mode after a <cr> the
 cursor will move directly below the first
 character on the previous line.
 This setting affects the current buffer only.
@@ -4272,7 +4271,7 @@ Cancel autoindent-global.
 @item ignorecase
 @itemx ic
 @cindex case and searching
-ignorecase -- No distinction between upper and lower cases when searching.
+ignorecase: No distinction between upper and lower cases when searching.
 @item noignorecase
 @itemx noic
 Cancel ignorecase.
@@ -4286,7 +4285,7 @@ Cancel magic.
 @item readonly
 @itemx ro
 @cindex readonly files
-readonly -- The file is not to be changed.
+readonly: The file is not to be changed.
 If the user attempts to write to this file, confirmation will be requested.
 @item noreadonly
 @itemx noro
@@ -4294,18 +4293,18 @@ Cancel readonly.
 @item shell=<string>
 @itemx sh=<string>
 @cindex shell
-shell -- The program to be used for shell escapes
+shell: The program to be used for shell escapes
 (default @samp{$SHELL} (default @file{/bin/sh})).
 @item shiftwidth=<count>
 @itemx sw=<count>
 @cindex layout
 @cindex shifting text
-shiftwidth -- Gives the shiftwidth (default 8 positions).
+shiftwidth: Gives the shiftwidth (default 8 positions).
 @item showmatch
 @itemx sm
 @cindex paren matching
 @cindex matching parens
-showmatch -- Whenever you append a @kbd{)}, Vi shows
+showmatch: Whenever you append a @kbd{)}, Vi shows
 its match if it's on the same page; also with
 @kbd{@{} and @kbd{@}}.  If there's no match, Vi will beep.
 @item noshowmatch
@@ -4315,7 +4314,7 @@ Cancel showmatch.
 @itemx ts=<count>
 @cindex changing tab width
 @cindex tabbing
-tabstop -- The length of a <ht>; warning: this is
+tabstop: The length of a <ht>; warning: this is
 only IN the editor, outside of it <ht>s have
 their normal length (default 8 positions).
 This setting affects the current buffer only.
@@ -4326,13 +4325,13 @@ Same as `tabstop', but affects all buffers.
 @itemx wm=<count>
 @cindex auto fill
 @cindex word wrap
-wrapmargin -- In append mode Vi automatically
+wrapmargin: In append mode Vi automatically
 puts a <lf> whenever there is a <sp> or <ht>
 within <wm> columns from the right margin.
 @item wrapscan
 @itemx ws
 @cindex searching
-wrapscan -- When searching, the end is
+wrapscan: When searching, the end is
 considered @samp{stuck} to the begin of the file.
 @item nowrapscan
 @itemx nows
@@ -4344,31 +4343,31 @@ Turn <option> off.
 @item :set <option>=<value>
 Set <option> to <value>.
 @end table
-@findex @kbd{:set <option>=<value>}
-@findex @kbd{:set no<option>}
-@findex @kbd{:set <option>}
-@findex @kbd{:set ws}
-@findex @kbd{:set wrapscan}
-@findex @kbd{:set wm=<count>}
-@findex @kbd{:set wrapmargin=<count>}
-@findex @kbd{:set ts=<count>}
-@findex @kbd{:set tabstop=<count>}
-@findex @kbd{:set tab-stop-local=<count>}
-@findex @kbd{:set sm}
-@findex @kbd{:set showmatch}
-@findex @kbd{:set sw=<count>}
-@findex @kbd{:set shiftwidth=<count>}
-@findex @kbd{:set sh=<string>}
-@findex @kbd{:set shell=<string>}
-@findex @kbd{:set ro}
-@findex @kbd{:set readonly}
-@findex @kbd{:set magic}
-@findex @kbd{:set ic}
-@findex @kbd{:set ignorecase}
-@findex @kbd{:set ai}
-@findex @kbd{:set autoindent}
-
-@node Emacs Related Commands,,Options,Commands
+@findex @kbd{Ex set <option>=<value>}
+@findex @kbd{Ex set no<option>}
+@findex @kbd{Ex set <option>}
+@findex @kbd{Ex set ws}
+@findex @kbd{Ex set wrapscan}
+@findex @kbd{Ex set wm=<count>}
+@findex @kbd{Ex set wrapmargin=<count>}
+@findex @kbd{Ex set ts=<count>}
+@findex @kbd{Ex set tabstop=<count>}
+@findex @kbd{Ex set tab-stop-local=<count>}
+@findex @kbd{Ex set sm}
+@findex @kbd{Ex set showmatch}
+@findex @kbd{Ex set sw=<count>}
+@findex @kbd{Ex set shiftwidth=<count>}
+@findex @kbd{Ex set sh=<string>}
+@findex @kbd{Ex set shell=<string>}
+@findex @kbd{Ex set ro}
+@findex @kbd{Ex set readonly}
+@findex @kbd{Ex set magic}
+@findex @kbd{Ex set ic}
+@findex @kbd{Ex set ignorecase}
+@findex @kbd{Ex set ai}
+@findex @kbd{Ex set autoindent}
+
+@node Emacs Related Commands
 @section Emacs Related Commands
 
 @table @kbd
@@ -4418,7 +4417,7 @@ you need.
 @kindex @kbd{C-\}
 @kindex @kbd{C-c\}
 
-@node Mouse-bound Commands,,,Commands
+@node Mouse-bound Commands
 @section Mouse-bound Commands
 
 The following two mouse actions are normally bound to special search and
@@ -4432,7 +4431,7 @@ a region under the mouse pointer.
 This command can take a prefix argument.  Note: Viper sets this
 binding only if this mouse action is not
 already bound to something else.
-@xref{Viper Specials}, for more information.@refill
+@xref{Viper Specials}, for more information.
 
 @item S-Mouse-2
 Holding Shift and clicking button 2 of the mouse will
@@ -4440,15 +4439,18 @@ insert a region surrounding the mouse pointer.
 This command can also take a prefix argument.
 Note: Viper sets this binding only if this mouse action is not
 already bound to something else.
-@xref{Viper Specials}, for more details.@refill
+@xref{Viper Specials}, for more details.
 @end table
 @kindex @kbd{S-Mouse-1}
 @kindex @kbd{S-Mouse-2}
 @kindex @kbd{meta button1up}
 @kindex @kbd{meta button2up}
 
-@node Acknowledgments,,,Top
-@comment  node-name,  next,  previous,  up
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
+@include doclicense.texi
+
+@node Acknowledgments
 @unnumbered Acknowledgments
 
 Viper, formerly known as VIP-19, was written by Michael Kifer.  Viper is
@@ -4478,12 +4480,12 @@ dxc@@xprt.net (David X Callaway),
 edmonds@@edmonds.home.cs.ubc.ca (Brian Edmonds),
 gin@@mo.msk.ru (Golubev I.N.),
 gviswana@@cs.wisc.edu (Guhan Viswanathan),
-gvr@@halcyon.com (George V.@: Reilly),
+gvr@@halcyon.com (George V. Reilly),
 hatazaki@@bach.convex.com (Takao Hatazaki),
 hpz@@ibmhpz.aug.ipp-garching.mpg.de (Hans-Peter Zehrfeld),
 irie@@t.email.ne.jp (Irie Tetsuya),
 jackr@@dblues.engr.sgi.com (Jack Repenning),
-jamesm@@bga.com (D.J.@: Miller II),
+jamesm@@bga.com (D.J. Miller II),
 jjm@@hplb.hpl.hp.com (Jean-Jacques Moreau),
 jl@@cse.ogi.edu (John Launchbury),
 jobrien@@hchp.org (John O'Brien),
@@ -4522,36 +4524,27 @@ whicken@@dragon.parasoft.com (Wendell Hicken),
 zapman@@cc.gatech.edu (Jason Zapman II),
 @end example
 
-@node GNU Free Documentation License,,, Top
-@appendix GNU Free Documentation License
-@include doclicense.texi
-
-@node Key Index,Function Index,,Top
-@comment  node-name,  next,  previous,  up
+@node Key Index
 @unnumbered Key Index
 
 @printindex ky
 
-@node Function Index,Variable Index,Key Index,Top
-@comment  node-name,  next,  previous,  up
+@node Function Index
 @unnumbered Function Index
 
 @printindex fn
 
-@node Variable Index,Package Index,Function Index,Top
-@comment  node-name,  next,  previous,  up
+@node Variable Index
 @unnumbered Variable Index
 
 @printindex vr
 
-@node Package Index,Concept Index,Variable Index,Top
-@comment  node-name,  next,  previous,  up
+@node Package Index
 @unnumbered Package Index
 
 @printindex pg
 
-@node Concept Index,,Package Index,Top
-@comment  node-name,  next,  previous,  up
+@node Concept Index
 @unnumbered Concept Index
 
 @printindex cp