Tuesday, January 5, 2021

Switching Modes in Vim

Learn how to swtich modes in Vim.
Photo by Alex Knight on Unsplash

On a previous post we learned about three of the most important foundational concepts of Vim: Commands, Buffers, Modes and Motions. We also recently reviewed how to install Vim on MacsWindows or Linux, learned how to get started with Vim and mastered your first Vim tutorial, let's review tips and tricks to keep learning Vim. 

Today we will continue discussing Modes, specifically talking about a common operation in Vim: how to switch modes. But before we continue, let's review what are modes in Vim and which they are.

Modes in Vim

Modes are another feature that differentiates Vim from traditional text editors and something that's important to comprehend. Modes are 

The most common modes are:

  • Normal: Vim's primary mode and the one we use to run commands:
  • Insert: the mode where you edit the contents of your files
  • Visual: visual selection of contents
  • Replace: allows you to type over the text, replacing it
  • Command-line: allows you to execute commands via its own command-line prompt
  • Visual-block: allows you to make block-level changes (vertical selections and modifications)
  • Ex: in this mode Vim emulates the Ex editor and is used mainly for batch processing
  • Select: like the visual mode but with more CUA like behavior.

How to switch Modes in Vim

But understanding Modes is just the first part. Next, you have to understand how to switch between modes. The traditional workflow is to press <Esc> to go back to normal mode then press a keystroke to enter the other mode. Some of the keystrokes you can use to switch between modes are:

  • <Esc> - goes back to normal mode
  • i - enters insert mode (but other keystrokes exist)
  • : - enters command mode (but other keystrokes exist)
  • v - enters visual mode
  • V - enters visual mode (line selection)
  • R - enters command-line mode
  • <Ctrl-v>: enters visual block mode

Switching Modes in Action

So let's see some real use cases. In Vim, open an existing file with :e <filename> and follow the next steps.

Inserting Text in Insert Mode

For every opened file, the default mode is Normal mode. To type modifications in our file, we should either switch to Normal or Replace, Normal being by far the most common one. Some important keywords worth memorizing when switching from Normal to Insert mode are:

  • i - to insert in the current position
  • a - to insert after the next char
  • C - to change from the next char (delete all until the end of the line)
  • S - to substitute the current line (delete the whole line)

Back to Normal Mode

Next, get back to Normal Mode by pressing <Esc>, find the text hello by searching with /hello in normal mode and hit enter to set the cursor in that position.

Replacing text in Replace Mode

In case you want to type over the text, replacing it, press R to enter replace mode, enter your changes and <Esc> again to go back to normal mode.

Back to Normal Mode

Guess how should we get back to Normal Mode? You got it! By pressing <Esc>

Replacing Text using Command Mode

But we could have replaced hello by world using command mode. For example, the command below would run in command mode and would replace all occurrences of the word hello by world in the current buffer:

:%s/hello/world/g

Saving our file

Next, to save our file from Command Mode by typing :w

Quitting

And quit with :q

In which mode am I?

And how do we know in which mode we are? Assuming you're not running any plugins, Vim should show you that in the bottom of the screen:

  • Normal Mode: blank (no info)
  • Insert Mode: -- INSERT --
  • Replace Mode: -- REPLACE --
  • Visual: -- VISUAL LINE --
  • and so on
For example, in insert mode you should see something like:

If that info is not available, try resetting the showmode config with:

:set showmode

Fore more info about that configuration, type:

:h showmode

Conclusion

On this post we reviewed how to switch modes in Vim. We hope that these examples helped you understand better how these modes work in conjunction. We recommend you playing with the modes and getting comfortable with them since they're an essential part of learning and mastering Vim.

See Also

Any comment about this page? Please contact us on Twitter

Featured Article

Vim - Ex Mode

When learning Vim, it's important to understand its modes, including the  Ex Mode  where you can continually type your commands u...

Popular Posts