Viper is a Vi emulation on top of Emacs. At the same time, Viper provides a virtually unrestricted access to Emacs facilities. Perfect compatibility with Vi is possible but not desirable. This chapter tells you about the Emacs ideas that you should know about, how to use Viper within Emacs and some incompatibilities.
This manual is written with the assumption that you are an experienced Vi user who wants to switch to Emacs while retaining the ability to edit files Vi style. Incredible as it might seem, there are experienced Emacs users who use Viper as a backdoor into the superior (as every Vi user already knows) 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 ~/.emacs.d/viper file and are found at the following URL: http://traeki.freeshell.org/files/viper-sample.