Vim 101 - A Beginner's Guide To Vim
Vim 101 - A Beginner's Guide To Vim
com
Ever wanted to learn Vim, but weren’t sure how to start? No problem. We have you covered! This will
be the first of a four-part (possibly longer) series covering how to use Vim and where to start using
the world’s best text editor.
Note that this is an article explicitly for beginners new to Vim. If you’ve been using Vim for a while,
all of this should look entirely familiar–and you might wonder why some topics aren’t covered.
Patience. We’ll get to everything in due time, but there’s a lot to cover!
What the heck do we mean by modal? When you’re using most word processors and text editors, the
alphanumeric keys (i.e., a through z, 1 through 9) are only used to input those characters unless
they’re modified by a control key. In Vim, the mode that the editor is in determines whether the
alphanumeric keys will input those characters or move the cursor through the document.
For example, many text editors and word processors require you to use the mouse to click a menu
item or icon, or use the Ctrl-s hotkey combination, to save a file.
In Vim, you can save a file without your hands leaving the keyboard, and sometimes without even
leaving the home keys. From Vim’s insert mode, hit Escape and then :w. That’s all. More on that later.
If that all sounds complicated, it’s not–but it can take a little getting used to, like driving a manual
transmission instead of an automatic. So, why would you want to learn Vim? Even though Vim is my
favorite editor, I’ll be very blunt: you might not want to. If you’re never going to do any system
administration or heavy editing of text, and if you don’t want to invest any time in learning the
capabilities that Vim has, then learning Vim might not be the best use of your time.
On the other hand, if do any of the following, you probably want to look into Vim:
System administration
Programming
Working with HTML, LaTeX, or other markup languages
Heavy editing of plain text files
Even though Vim isn’t as easy to use initially as standard GUI text editors like Gedit or word
processors like OpenOffice.org’s Writer, over a longer term you can become more productive using
Vim. If you’re a touch-typist, you’ll find that your speed will improve even more with Vim because
your hands rarely need to leave the “home” keys–and you’ll only need to use the mouse if you choose
to do so.
System administrators need to know at least a little Vim/vi to get by simply because it’s the editor
most likely to be on any given *nix system that you need to work on. Vi is the lingua franca of
system administration.
https://www.linux.com/tutorials/vim-101-beginners-guide-vim/ 1/5
3/8/2020 Vim 101: A Beginner's Guide to Vim - Linux.com
If you’re a programmer or working with structured markup languages like HTML, LaTeX, DocBook,
etc., Vim is the bee’s knees. It offers a number of features that I’ll cover in later installments that
make working with programming and markup languages much easier.
You might be skeptical. I was too, 10 years ago when my boss insisted I learn Vim to work on the
company’s Web site. The first week was painful. The month after that was okay. Within two months,
I’d have sooner typed with my feet than to switch away from Vim.
The Modes
Some people disagree on how many modes Vim actually has. I’m going to define three: insert mode,
command mode, and last-line mode. Let’s start with the default mode you’ll see when you start up
Vim–command mode.
When you run vim filename to edit a file, Vim starts out in command mode. This means that all the
alphanumeric keys are bound to commands, rather than inserting those characters. Typing j won’t
insert the character “j”–it will move the cursor down one line. Typing dd will delete an entire line,
rather than inserting “dd.”
To enter the insert mode, type i (for “insert”) and now the keys will behave as you’d expect. You can
type normally until you want to make a correction, save the file, or perform another operation that’s
reserved for command mode or last-line mode. To get out of insert mode, hit the Escape key.
Once you press Escape, you’re in command mode again. What if you’d like to save your file or search
through your document? No problem, press : and Vim will switch to last-line mode. Vim is now
waiting for you to enter a command like :w to write the file or :q to exit the editor.
If that all sounds complicated, it’s really not. It does take a few days to start training your brain to
move between the modes and memorizing the most important keys for movement, commands, and
so on. But once you start getting the hang of it, you’ll be surprised by how fluid it is editing a file in
Vim. Let’s walk through some of the most common commands that you need to know.
Here’s a handy tip: prefacing a movement command with a number will execute that movement
multiple times. So, if you want to move up six lines, enter 6k and Vim will move the cursor up six
lines. If you want to move over five words, enter 5w. To move 10 words back, use 10b.
https://www.linux.com/tutorials/vim-101-beginners-guide-vim/ 2/5
3/8/2020 Vim 101: A Beginner's Guide to Vim - Linux.com
Keep that tip in mind–you’ll find that prefacing other commands with a number can come in handy as
well.
The best way to learn is practice. Take a few minutes to try Vim out. If you’re on a Linux system right
now, open up a terminal and type vim filename. Enter insert mode and type a bit (or copy some of
the text from this article into Vim) and then hit Escape to start practicing movement around the file.
Once you feel you’re getting the hang of it, it’s time to try some editing.
Want to delete an entire word? Move your cursor to the beginning of a word again. Use dw. Note that
this will only delete the word from the cursor on–so if you have the cursor in the middle of a word, it
will only delete from that point on. Again, u will undo it. Note that Vim has multiple levels of undo, so
you can undo the change before that and the change before that, etc.
Want to undo your undo? Hit Ctrl-r. That will redo your last undo.
Again, here’s a longer list of the commands you’ll definitely want to know starting out:
You may have noticed that several commands combine a text operation and movement key. gg takes
you to the end of a file, and d is used to delete. Combining them gives you something more powerful.
Vim’s like that. If you’re working in Vim and think “hey, I wonder if I can combine two things I know
to make something easier,” the answer is often (but not always) yes.
Let’s move on a bit and talk briefly about searching and replacing.
If I want to find it again, I hit n. If I want to look for a previous instance of the text, I’ll use N instead,
which will search the opposite direction through the document.
Want to reverse the direction of your search? Use ? instead of / and Vim will move backwards through
the document. Using n and N as above will reverse the direction of the search.
https://www.linux.com/tutorials/vim-101-beginners-guide-vim/ 3/5
3/8/2020 Vim 101: A Beginner's Guide to Vim - Linux.com
That’s all pretty easy, isn’t it? Now to move on to an important operation: Cutting and pasting text.
Want to select text? In command mode, hit V and you’ll be able to move the cursor using the arrow
keys or the standard movement keys (h, k, j, l) to highlight text. This is pretty easy, but can be slow.
Want to copy entire lines at a time? Use V instead of v and you’ll highlight entire lines at a time.
Again, you can use the movement keys to highlight additional lines.
Vim has a really cool trick as well. You can highlight in columns. Use Ctrl-v and you’ll be able to
highlight a column instead of an entire line. This can be useful when working with some text files that
have data in columns and you want to select an entire column, but not an entire line.
When you’ve highlighted what you want, hit y and it will “yank” the text into the buffer to be pasted
later. So a usual paste operation might look like this:
Hit v to highlight some text. Then hit y to yank it into the buffer. Then move the cursor where you
want it, and use p in command mode. There you go–you’ve just pasted some text!
You’ve done enough editing for one day and you’re ready to pack it in. No problem. Here’s how you
can save the file and quit Vim.
To write the file you’re editing, enter w. (So, you’ll have :w.) That will write the file to the existing
filename. If you don’t have a filename or want to write out to a different filename, use :w filename.
https://www.linux.com/tutorials/vim-101-beginners-guide-vim/ 4/5
3/8/2020 Vim 101: A Beginner's Guide to Vim - Linux.com
To quit Vim after you’ve finished, hit :q. Since Vim is your friend, it won’t just pop out on you if you
haven’t saved your file. It will say “no write since last change,” and suggest that you add ! to
override.
If you really want to quit, go ahead and use :q! to leave without being nagged.You can also exit Vim
using ZZ, which will save and quit the file. Again, all this might sound a bit complex, but it really isn’t.
It’s a bunch of smaller things to learn that when you add them all up, make for a very powerful
package.
For now that should be enough to get you started. Don’t fret, though. We’ll go through more Vim
usage next week, and keep working on Vim until you’re an expert.
Joe ‘Zonker’ Brockmeier is a longtime FOSS advocate, and currently works for Novell as the
community manager for openSUSE. Prior to joining Novell, Brockmeier worked as a technology
journalist covering the open source beat for a number of publications, including Linux Magazine, Linux
Weekly News, Linux.com, UnixReview.com, IBM developerWorks, and many others.
zonker
https://www.linux.com/tutorials/vim-101-beginners-guide-vim/ 5/5