Vim looks like it sucks. Here’s why it’s my favorite writing tool

How an old text editor from the 1970’s is actually the universal text editor with hidden super powers, and why you should use it to become a great writer.

Vim: it’s not much to look at — a flashing cursor, a column of tildes along the left side. Some random numbers and words along the bottom, maybe. It looks like a computer program from 1976, because that’s exactly what it is.

If you start vim in the Terminal, this is what you’ll see

Why would anyone want to use this text editor, when there are decades of improvements and features in programs like Word, Pages, Docs, whatever?

It doesn’t have a menu bar, it doesn’t have a tool bar, what’s going on?

You can’t even format the text. There’s no bold, or italics, no fonts. That’s because vim is a text editor: like Notepad in Windows, it only allows you to enter letters, numbers, and punctuation — no formatting.

What are you supposed to do with this program, anyway?

Write. It’s for writing, and editing. It’s not for page layout, formatting, or inserting graphics. It won’t post what you wrote to social media, or to your blog.

It’s a pure writer’s tool — simple, fast, reliable.

You can write code, you can write prose. Vim gets out of your way and lets you get work done.

One of vim’s best features, in my opinion, is the completely bare user interface. There’s nothing to distract you. It’s time to write.

You try it out. It’s easy, if you know how to type. If you don’t know how to touch type, you aren’t going to like vim. But if your fingers are comfortable on the home row, you’ll love vim.

It’s not designed for a mouse (although you can use one, if you want — but why bother?). It’s designed for typing, fast.

How do I use vim?

There are two ways to use vim:

  • launch it from the command line.
  • run it as an app.

Wait, what? The command line? What is this, 1976? We’re well into the 21st century. What about the mouse, the taps, the swipes?

We’re here to write. We’re going to use the keyboard, that’s it. The idea is to keep your fingers on the keyboard, not to paw at your desk, trying to find your mouse, or poke at your screen like some dazzled chimp.

Your computer has some kind of command line feature, whether you’re running Windows, Mac, or Linux. If you have a Mac or Linux computer, you’ve already got vim installed. In fact, vim is available for for free for pretty much any computer operating system. Plus, it’s free.

If it’s free, it must suck

Vim is free because it’s open source software, not because it sucks. In fact, it’s fast, reliable, and hardly uses any disk space, RAM, or CPU cycles. It’s incredibly responsive. No more waiting for the cursor to catch up with your typing, even if you have a slow computer.

But the real reason it’s so fast is because you never have to take your hands away from the keyboard.

To run vim from your Mac or Linux computer, just open Terminal and enter:

vim

That’s it.

Pro Tip: Once you start vim in Terminal, use your Full Screen button on the Terminal window (or the F11 key). Now vim takes up the whole screen, and there’s nothing to distract you at all.

If this is too intense, and you miss your system menu bar and window controls, you can run vim as an app.

Running vim as an app is a great way to learn about some of its more powerful features, because you can explore the commands in the menu bar. But I encourage you to run vim from Terminal, because you probably already have all the software you need right now.

If you’re running Windows, or even DOS, you can download a version of vim that runs on your computer from the Vim website.

In fact, you can download vim for just about any computer on the vim download page, including different vim apps, like MacVim, that you can launch without using the command line.

So go ahead and start vim on your Mac or Linux computer, or download the version of vim that runs on your computer, and start it up!

I’ve got vim running and I type and nothing happens. This program sucks!

OK, you’ve got vim running, and it’s filled up the whole screen, and there’s nothing on the screen to distract you, but there’s nothing there to help you out, either. When you type, nothing happens.

That’s because vim uses modes, which means you’re going to use the keyboard to:

  • edit text in normal mode (this is also your “home base,” where you can access all the other modes);
  • enter text, in insert mode;
  • enter commands in command-line mode;
  • select text to cut, copy and paste in visual mode.

There are a few more modes, but these are the ones you’re going to use 99% of the time. When you start vim, you start in normal mode. Again, think of normal mode as your home base in vim.

I just want to write. Why do I have to remember all this stuff?

If you’re a writer, you’re probably already using “modes” when you write. You’re either creating new text in writing, or creative, mode, or you’re editing the text you created.

It’s hard to write well if you’re constantly stopping to edit what you just wrote.

Good writers separate the creating and the editing, and vim helps you do that too, because that’s exactly how vim works.

Vim works like you do: to create new text, you switch to insert mode to insert new text on the screen where the cursor is. Just hit i to enter insert mode — the word — INSERT — will appear on the bottom left corner of the screen on the last line. This bottom line on the vim screen is the status line and it will tell you which mode you’re in, among other things.

After you press i to go to insert mode, just start typing. Your text appears right at the easy-to-find cursor.

There’s nothing to distract you from your writing. There’s no auto-correct, or automatic suggestions from Google or Apple, no red zig-zags under words the computer doesn’t recognize. Just what you type, that’s what you get.

The vim screen in insert mode displays the word "INSERT" on the status bar
In vim, What You Type Is What You Get: WYTIWYG, pronounced “witty-wig.”

It doesn’t look fancy, so you don’t have to worry about picking a font or setting up the margins, or anything else besides writing. Just go to Insert mode and get to work.

OK, this is pretty cool

If you’re using vim, full screen, typing away in insert mode, there’s nothing else on the screen to distract you: no flashing icons, no other windows with browser tabs or emails to tempt you away from your writing.

There are no palettes, toolbars, or rulers to clutter up your screen. Vim is a text editor, so you can’t format the text anyway.

Vim shows just the cursor and what you type. That’s it. Do you feel that zen-like calm descend upon you as you slip into the zone, cranking out hundreds of words in a matter of minutes? I do.

Made a mistake? No problem, you can go back and fix it later. You can even run the spell checker. But right now, you’re in creative mode (also known as insert mode in vim). Write some words here!

Of course, you can use the Backspace key in insert mode to remove any characters you just typed.

All right! I wrote some good stuff, and now I need to save it

After you’ve written for a while, you’ll probably want to save your file. If you just started vim at the command line, or launched a vim app, you haven’t given your file a name yet.

To save your file with a new name, you’re going to go back to normal mode to get to the command line. It sounds complicated, but it’s actually really easy.

To get to normal mode (you can do this any time in vim if you’re not sure what’s going on), just press:

Esc

You’ll notice that the — INSERT — indicator disappears from the bottom of your screen. Now, there’s nothing in that lower left corner, on your vim status bar. This means you’re back in normal mode.

If you’re not sure, just press the Esc key, as many times as you want. You won’t break anything! This program’s been around since the 70’s, it can handle it.

In normal mode, you can access the command line. It’s easy — just press

:

You’ll know it worked because the : shows up in the lower left corner of your vim screen. That’s the command prompt.

Do you want to make it go away? Just press Esc — that will always take you back to normal mode, which is like your home base in vim.

From normal mode you can go to:

  • insert mode — press i
  • command line — press :

That’s how to switch between the modes — easy to remember. If you want to learn it now, try switching between the three modes:

Esc i Esc : Esc

Watch the status line at the bottom left of the vim screen to see which mode you’re in.

So how do we save our new file? First, go to the command line:

Esc :

Now type the write command and give your file a new name, like this:

:w ~/vimfile.txt

and press Enter to save your file. This writes the file into your home directory (~/) with the name vimfile.txt.

In normal mode in vim, type :w ~/vimfile.txt to save your new file to your home directory
In command line mode, your command appears on the status bar

If that worked, you’ll see something like this on the status bar on the lower left (the number of lines and characters will change depending on how much you type):

"~/vimfile.txt" [New] 1L, 55C written

Now, to go back to entering text, press A (Shift – a) to append new text. That automatically puts you into insert mode at the end of the current line.

Now, just type away. When you want to save, you don’t have to list a file name, because you’ve already named and saved your new file.. Just press:

Esc :w Enter A

This key sequence will;

  1. Put you in normal mode (Esc)
  2. Go to the vim command line (:)
  3. Write your file (w Enter)
  4. Return you to insert mode at the end of the current line (A)

Maybe that seems like a lot, but since you’ll do this sequence of commands over and over again, pretty soon it will be automatic, muscle memory:

Esc :w Enter A

Now you’ve discovered the secret power of vim. You can control the program with quick key combinations that you’ll memorize quickly, because you’ll use them so many times when you’re writing.

Once you’re done working on your new file, you can save and quit vim with this key sequence:

Esc :wq Enter

That’s very similar to the key sequence you use to save your file, with a slight difference: :wq tells vim to write the file, then quit.

What’s next with vim?

The next step is to learn how to edit in vim’s normal mode. But you don’t have to do that.

Once you’ve written your rough draft in vim, because it’s a simple text file, you can open your file in pretty much any word processor or page layout program if you want to edit, format, or lay out the text you’ve entered.

Vim helps you keep the editing work separate from the writing. Vim also turns your computer into a distraction-free writing machine. Try it out!

Remember, it’s free, and the files vim creates are compatible with any program that can read a text file.

Let me know what you think of vim in the comments below.

Leave a comment