Next: Commands, Previous: Improvements over Vi, Up: Top

## 3 Customization

Customization can be done in 2 ways.

- Elisp code in a `.viper` file in your home directory. Viper loads `.viper` just before it does the binding for mode hooks. This is recommended for experts only.
- Elisp code in your `.emacs` file before and after the `(require 'viper)` line. This method is not recommended, unless you know what you are doing. Only two variables, `viper-mode` and `viper-custom-file-name`, are supposed to be customized in `.emacs`, prior to loading Viper (i.e., prior to `(require 'viper)` command.
- By executing the `: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 `~/.emacs` or some other customization file depending on the 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 `.viper` file.

  Some advanced customization cannot be accomplished this way, however, and has to be done in Emacs Lisp in the `.viper` file. For the common cases, examples are provided that you can use directly.