GNU Info

Info Node: (viper)States in Viper

(viper)States in Viper


Next: The Minibuffer Prev: Loading Viper Up: Overview
Enter node , (file) or (file)node

States in Viper
===============

   Viper has four states, Emacs, Vi, Insert, and Replace.

`Emacs state'
     This is the state plain vanilla Emacs is normally in.  After you
     have loaded Viper, `C-z' will normally take you to Vi command
     state.  Another `C-z' will take you back to Emacs state.  This
     toggle key can be changed, Note: Customization You can also type
     `M-x viper-mode' to change to Vi state.

     For users who chose to set their user level to 1 at Viper setup
     time, switching to Emacs state is deliberately made harder in
     order to not confuse the novice user.  In this case, `C-z' will
     either iconify Emacs (if Emacs runs as an application under X) or
     it will stop Emacs (if Emacs runs on a dumb terminal or in an
     Xterm window).

`Vi state'
     This is the Vi command mode.  Any of the Vi commands, such as `i,
     o, a', ..., will take you to Insert state.  All Vi commands may be
     used in this mode.  Most Ex commands can also be used.  For a full
     list of Ex commands supported by Viper, type `:' and then <TAB>.
     To get help on any issue, including the Ex commands, type `:help'.
     This will invoke Viper Info (if it is installed).  Then typing
     `i' will prompt you for a topic to search in the index.  Note: to
     search for Ex commands in the index, you should start them with a
     `:', e.g., `:WW'.

     In Viper, Ex commands can be made to work on the current Emacs
     region.  This is done by typing a digit argument before `:'.  For
     instance, typing `1:' will propmt you with something like
     _:123,135_, 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.

`Insert state'
     Insert state is the Vi insertion mode.  <ESC> will take you back to
     Vi state.  Insert state editing can be done, including
     auto-indentation.  By default, Viper disables Emacs key bindings
     in Insert state.

`Replace state'
     Commands like `cw' invoke the Replace state.  When you cross the
     boundary of a replacement region (usually designated via a `$'
     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 <ESC>, Viper will switch to
     Vi command mode, terminating the replacement state.

   The modes are indicated on the "mode line" as <E>, <I>, <V>, and <R>,
so that the multiple modes do not confuse you.  Most of your editing
can be done in Vi and Insert states.  Viper will try to make all new
buffers be in Vi state, but sometimes they may come up in Emacs state.
`C-z' will take you to Vi state in such a case.  In some major modes,
like Dired, Info, Gnus, etc., you should not switch to Vi state (and
Viper will not attempt to do so) because these modes are not intended
for text editing and many of the Vi keys have special meaning there.
If you plan to read news, browse directories, read mail, etc., from
Emacs (which you should start doing soon!), you should learn about the
meaning of the various keys in those special modes (typing `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 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.

   States in Viper are orthogonal to Emacs major modes, such as C mode
or Dired mode.  You can turn Viper on and off for any Emacs state.
When Viper is turned on, Vi state can be used to move around.  In
Insert state, the bindings for these modes can be accessed.  For
beginners (users at Viper levels 1 and 2), these bindings are
suppressed in Insert state, so that new users are not confused by the
Emacs states.  Note that unless you allow Emacs bindings in Insert
state, you cannot do many interesting things, like language sensitive
editing.  For the novice user (at Viper level 1), all major mode
bindings are turned off in Vi state as well.  This includes the
bindings for key sequences that start with `C-c', which practically
means that all major mode bindings are supported.  Note:
Customization, to find out how to allow Emacs keys in Insert state.

Emacs State
This is the state you should learn more about when
you get up to speed with Viper.
Vi State
Vi commands are executed in this state.
Insert State
You can enter text, and also can do sophisticated
editing if you know enough Emacs commands.
Replace State
Like Insert mode, but it is invoked via the
replacement commands, such as cw, C, R, etc.

automatically generated by info2www version 1.2.2.9