Skip to main content

Little changes in Vim

One letter at a time

Vim has commands to delete or change a single letter.

Delete a single letter with x. (Just x without the period!)

Change a single letter with r. (Just r without the period!)

Let's try the single letter commands out!

Small changes

Open vim.

Type i to go into insert mode.

Type Didd you Fill out teh from?

Hit the Esc key or type jj to go to normal mode.

There are four errors in the sentence. Didd should be did, Fill should be fill, teh should be the, and from should be form. Let's fix them the vim way.

Type ?r<Enter>xp?e<Enter>xp3brf?d<Enter>x

Fixed!

Did you see how it worked?

Start from scratch.

Watch what happens as you type in the commands.

Figure out how the commands are grouped.

Figure out why they work.

Did it seem like a lot of work?

Time yourself. It's faster than using a mouse!

Write out what you would do to make these changes with a mouse. Spell out every click, picking up the mouse, hitting backspace, and so on. It's a lot to do! If you practice making these changes the vim way, I guarantee you'll be faster! You might be thinking, "I can't remember all this." But if you learned to touch type, you can learn these commands. It is no more difficult than that. 

Explanation

There are four groups in the main command:

?r<Enter>xp
?e<Enter>xp
3brf
?d<Enter>x

Let's look at the first part of the first group. 

?r<Enter> is a navigation command: "Search backwards for r."

The second part of the first group, xp is one of my favorite vim idioms. 

xp means "delete and put," which exchanges the order of two letters.

I won't explain the second group, which is virtually identical to the first!

The third group has two parts. The first is 3b which is "Back three words."

The second is rf which is, "Replace the character under the cursor with f."

The fourth group, ?d<Enter>x is "Search backwards for d and delete it."

I have to admit this looks tough on paper. But in practice vim is easier to use than a word processor and mouse. After a while you won't have to think about these commands any more than you think about how to type x when you need it to spell xylophone. You just do it. You don't think about it.

Comments

Support blog with $5 contribution

Popular posts from this blog

Getting started with Vim

First vim file
Let's get something done in vim!

Open vim.
Do the following without changes.

Press i to go into insert mode. 
Type: "Hello, Dolly!" (with quotation marks)
Hit the Esc key to go into normal mode.
The cursor should be over the second quotation mark.
Type b to go back to the exclamation point.
Type cb to erase Dolly and go into insert mode.
Type World.
Hit the Esc key to go into normal mode.
Type : to go into command line mode.
Type w hello and hit the Enter key to save (write) the file as hello.
Type : to go into command line mode again. Type q and hit the Enter key to leave vim.
Congratulations!
You created a file hello in vim with one line of text, "Hello, World!"
So much for vim's famous learning curve!
Explanation
Vim is a modal text editor. We used three modes, normal, insert, and command line. 
Vim opened in normal mode. We couldn't insert text in normal mode. We could only give commands. Since we wanted to insert text, we gave the i…

Survival commands in Vim

Power
Vim is powerful.

When that power turns on you, it can be a disaster!

Let's learn how to recover from disaster.

Disaster!
Download War and Peace to your computer.

Open the file: vim 2600-0.txt (or vim <FILENAME.YOU.CHOSE>)

Imagine you're Tolstoy at your desk.

You just wrote War and Peace! It's a good day.

You type g followed by <Ctl>-g to see if your book meets the publisher's minimum 60,000 word requirement. Wow! 566,308 words! You're good.

But you can't remember if you wrote, "The End."

You type dG to go to the end of your document and check.

Whoops! You erased your whole book!

Maybe dG was the wrong command.

Salvation
Not to worry!

You type u (undo) and your whole document is restored.

Good thing you learned a few vim survival commands!

Erase War and Peace again. Feels powerful, doesn't it? dG was the command.

Type i to go into insert mode.

Type: Not only did I erase my masterpiece, but now I've typed over it!

Hit the Esc k…

Moving and deleting sentences in vim

What is a sentence?  Vim looks for punctuation to define a sentence.

Vim usually knows what a sentence is, but not always!

Here are two useful commands.

To move to the start of the next sentence, type ).

To move to the start of the current or previous sentence, type (.

Now let's see how these commands are used.

Open vim.

Hit i to go into insert mode.

Type or copy and paste this text:

Hello, Mr. Wilson. I was wondering if you could stop by this afternoon.

Hit <Esc> (or better yet, jj) to go back to normal mode.

Your cursor should be on the period of the second sentence.

Type ( to go back to the start of the current sentence.

Your cursor should be on the I at the start of the second sentence.

Type ( to go to the first letter of the previous sentence.

Oops! We ended up on the W of Wilson. Why?

Vim saw two sentences, "Hello, Mr." and "Wilson."

Two periods, two sentences.

Type ) to return to the start of the second sentence.

Type 2( to go to the start of the f…