Vim Installation

Mac OS come with a vim, which might not be the latest version. Using Homebrew1, latest version of vim can be obtained by running

brew install vim

For Linux, for example, Ubuntu,

sudo apt-get install vim

For Windows, installers could be obtained at the offical website. And one famous vim plugin YouCompleteMe also provides a vim build with Lua, Perl, Python, Racket, Ruby support.


Shipped with vim, vimtutor is one of the most effective tutorials to vim. It covers many actions and commands that help beginners to become productive using vim. After installation of vim, one could enter vimtutor by running the following command in terminal (for windows, it can be located at the vim installation folder):


It may take 25 to 30 minutes for one to complete the tutorial. But it will definitely take more time to get used to the modal editing philosophy of vim. In my opinion, all editors are trying to solve one core issue:

How to be (more) productive with a limited number of keys provided by a keyboard?

One typical way to solve this is using modifier keys like ctrl and alt. A daily usage case is we use ctrl + c to copy and ctrl + p to paste. And some times one need to chain multiple key chords to archive certain task. For example, one need to press ctrl + c ctrl + x ctrl + l in org-mode to preview LaTex math equations.

Instead of heavily relying on the modifier key, vim uses different modals to assign different “meanings” to the same key. For example,

  • In insert mode, d and w will enter the character.
  • But in normal mode, d means “delete” and w actually moves the cursor to the “word”

I am not saying the second approach (vim) is better than the first approach (emacs). They are just different “answers” to the issue above.

Simple Setups for a Better Look

After entering vim, one could type the following commands to:

  1. Show the line number

    :set number
  2. Use syntax highlighting

    :syntax on
  3. Use relative line number

    :set relativenumber
  4. Not compatible to vi

    :set nocompatible

In most cases, we put configurations of vim in a file named .vimrc (_vimrc on Windows) and vim will execute commands in the configuration file when it starts. The file is located at

Mac/Linux: ~/.vimrc
Windows: $HOME/_vimrc

And we can put the following lines in the .vimrc file:

set nocompatible
syntax on
set number
set relativenumber
" settings you can try
set wrap " wrap lines longer than the width of the window
set ruler " show line and column number of the cursor position

With some practices and usage of some plugins, you can be really productive using vim. Happy Vimming!

And here is the link to the Chinese version of this post.

Some Great Vim Tutorials

  1. 1.Homebrew is a package manager for macOS