viper: Insert State

 
 1.3.3 Insert State
 ------------------
 
 To avoid confusing the beginner (at Viper level 1 and 2), Viper makes
 only the standard Vi keys available in Insert state.  The implication is
 that 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).  See
 Customization, 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 “yank” command, ‘C-y’, which is
 similar to Vi’s ‘p’.  However, unlike ‘p’, ‘C-y’ can be used in Insert
 state of Viper.  Emacs also has a kill ring where it keeps pieces of
 text you deleted while editing buffers.  The command ‘M-y’ is used to
 delete the text previously put back by Emacs’s ‘C-y’ or by Vi’s ‘p’
 command and reinsert text that was placed on the kill-ring earlier.
 
    This works both in Vi and Insert states.  In Vi state, ‘M-y’ is a
 much better alternative to the usual Vi’s way of recovering the 10
 previously deleted chunks of text.  In Insert state, you can use this as
 follows.  Suppose you deleted a piece of text and now you need to
 re-insert it while editing in Insert mode.  The key ‘C-y’ will put back
 the most recently deleted chunk.  If this is not what you want, type
 ‘M-y’ repeatedly and, hopefully, you will find the chunk you want.
 
    Finally, in Insert and Replace states, Viper provides the history of
 pieces of text inserted in previous insert or replace commands.  These
 strings of text can be recovered by repeatedly typing ‘C-c M-p’ or ‘C-c
 M-n’ while in Insert or Replace state.  (This feature is disabled in the
 minibuffer: the above keys are usually bound to other histories, which
 are more appropriate in the minibuffer.)
 
    You can call Meta functions from Insert state.  As in Vi state, the
 Meta key is ‘C-\’.  Thus ‘M-x’ is typed as ‘C-\ x’.
 
    Other Emacs commands that are useful in Insert state are ‘C-e’ and
 ‘C-a’, which move the cursor to the end and the beginning of the current
 line, respectively.  You can also use ‘M-f’ and ‘M-b’, which move the
 cursor forward (or backward) one word.  If your display has a Meta key,
 these functions are invoked by holding the Meta key and then typing ‘f’
 and ‘b’, respectively.  On displays without the Meta key, these
 functions are invoked by typing ‘C-\ f’ and ‘C-\ b’ (‘C-\’ simulates the
 Meta key in Insert state, as explained above).
 
    The key ‘C-z’ is sometimes also useful in Insert state: it allows you
 to execute a single command in Vi state without leaving the Insert
 state!  For instance, ‘C-z d2w’ will delete the next two words without
 leaving the Insert state.
 
    When Viper is in Insert state, you will see <I> in the mode line.