Loading VIP has the effect of globally binding C-z (Control-z)
to the function
vip-change-mode-to-vi. The default binding of C-z
in GNU Emacs is
suspend-emacs, but, you can also call
suspend-emacs by typing C-x C-z. Other than this, all the
key bindings of Emacs remain the same after loading VIP.
Now, if you hit C-z, the function
vip-change-mode-to-vi will be
called and you will be in vi mode. (Some major modes may locally bind
C-z to some special functions. In such cases, you can call
execute-extended-command which is
invoked by M-x. Here M-x means Meta-x, and if your
terminal does not have a <META> key you can enter it by typing
<ESC> x. The same effect can also be achieve by typing
You can observe the change of mode by looking at the mode line. For instance, if the mode line is:
-----Emacs: *scratch* (Lisp Interaction)----All------------
then it will change to:
-----Vi: *scratch* (Lisp Interaction)----All------------
Thus the word ‘Emacs’ in the mode line will change to ‘Vi’.
You can go back to the original emacs mode by typing C-z in vi mode. Thus C-z toggles between these two modes.
Note that modes in VIP exist orthogonally to modes in Emacs. This means that you can be in vi mode and at the same time, say, shell mode.
Vi mode corresponds to Vi's command mode. From vi mode you can enter insert mode (which corresponds to Vi's insert mode) by usual Vi command keys like i, a, o ... etc.
In insert mode, the mode line will look like this:
-----Insert *scratch* (Lisp Interaction)----All------------
You can exit from insert mode by hitting <ESC> key as you do in Vi.
That VIP has three modes may seem very complicated, but in fact it is not so. VIP is implemented so that you can do most editing remaining only in the two modes for Vi (that is vi mode and insert mode).