Evil is basically a global minor mode that enables a few extra keymaps on top of Emacs and comes with the respective editing commands you'd use in them. It is intentionally built to reuse as much existing Emacs Lisp code as possible for better interoperability and less wasted effort, you'll for instance find out that window movement was lifted from windmove.el.
Upon activating evil-mode
it is enabled for all buffers and an initial state (Vim calls them modes, but modes already mean something different in Emacs, so Evil calls them states) is picked. That state is just a keymap, so commands bound in that keymap will just work, any other keys will be passed through to the next keymap in charge. The Evil devs did poke a few holes on purpose in these, like for C-g
, C-x
and C-c
(keybinds using the meta key will just work since Vim doesn't use it at all).
This essentially means that using gg
in normal state will do the right thing. It also means that using C-c C-c
will call the respective Emacs command. In case you find an useful command to be obscured, you can switch into Emacs state with C-z
(and switch back into the previous one by hitting it again), then later customize Evil to use a different initial state for the mode in question or change its keymaps directly. If Emacs state is picked for a buffer where you'd prefer having at least Vim-style movement, you can use motion state and have them. The amount of customization remains as small as you'd like it to be.
Have a look at my config to get an idea how more elaborate configuration could look like.