@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:
* 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
@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
* 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
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
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}
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}
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
`@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
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
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
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
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:
back to normal tabs.@refill
@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
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
specify @code{(setq ex-cycle-through-non-files t)} in your @file{.viper}
file. @xref{Customization}, for details.
-@node Undo and Backups, History, Basics, Improvements over Vi
+@node Undo and Backups
@section Undo and Backups
@cindex undo
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
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
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
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
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
@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
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.
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
and @samp{wuarchive.wustl.edu}@refill
-@node Customization,Commands,Improvements over Vi,Top
+@node Customization
@chapter Customization
@cindex customization
* 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
@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
@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
@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
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
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
* 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
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
* Undoing:: Multiple Undo, Backups
@end menu
-@node Move Commands,Marking,,Text Handling
+@node Move Commands
@subsection Move Commands
@cindex movement commands
@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}.
@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
@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
@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
@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
@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
@kindex @kbd{?<string>}
@kindex @kbd{/<string>}
-@node Yanking,Undoing,Search and Replace,Text Handling
+@node Yanking
@subsection Yanking
@cindex cut and paste
@kindex @kbd{yank}
@findex @kbd{:yank}
-@node Undoing,, Yanking,Text Handling
+@node Undoing
@subsection Undoing
@cindex undo
@kindex @kbd{U}
@kindex @kbd{u}
-@node Display, File and Buffer Handling, Text Handling, Commands
+@node Display
@section Display
@cindex scrolling
@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
@findex @kbd{:cd [<dir>]}
@findex @kbd{:pwd}
-@node Mapping, Shell Commands, File and Buffer Handling, Commands
+@node Mapping
@section Mapping
@cindex key bindings
@findex @kbd{:unmap!@: <char>}
@findex @kbd{:map!@: <char> <seq>}
-@node Shell Commands, Options, Mapping, Commands
+@node Shell Commands
@section Shell Commands
@cindex % (Current file)
@findex @kbd{:sh}
@findex @kbd{:make}
-@node Options,Emacs Related Commands,Shell Commands,Commands
+@node Options
@section Options
@cindex Vi options
@findex @kbd{:set ai}
@findex @kbd{:set autoindent}
-@node Emacs Related Commands,,Options,Commands
+@node Emacs Related Commands
@section Emacs Related Commands
@table @kbd
@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
@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
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