When working with Vim, you usually want to spend as little time as possible in the insert mode (unless you're writing and not editing). Since most text operations involve editing, we'll focus on that.
You've already learned to enter the insert mode by pressing i. There are more ways to get to the insert mode. Often times you will want to change some piece of text for another one, and there's a command just for that c. The change command allows you to remove a portion of text and immediately enter an insert mode. Change is a compound command, meaning that it needs to be followed by a command which tells Vim what needs to be changed. You can combine it with any of the movement commands you've learned before. Here are some examples:
Command | Before | After |
cw | ||
c3e (comma counts as a word) | ||
cb | ||
c4l | ||
cW |
As you learn more complex movements commands, you can combine these with a change for quick and seamless editing. We'll also be covering a few plugins which will supercharge a change command to allow for even more powerful editing, like changing text within braces, or replacing the type of quotes on the go.
For example, if you wish to change farm = add_animal(farm, animal) to farm = add_animal(farm, creature), you can execute the following set of commands:
Contents of the line | Action |
Start with a cursor in the beginning of the line | |
Hit 3W to move the cursor three WORDs forward to the beginning of animal | |
Press cw to delete the word animal and enter the insert mode | |
Type creature | |
Hit the Esc key to return to NORMAL mode |
Sometimes we just want to cut things, without putting anything instead, and d does just that. It stands for delete. It behaves similarly to c, except that the behavior of w and e is more standard, as can be seen in the following example:
Command | Before | After |
dw | ||
d3e (comma counts as a word) | ||
db | ||
d4l | ||
dW |
There are also two more nifty shortcuts which allow you to change or delete a whole line:
Command | What it does |
cc | Clears the whole line and enters insert mode. Preserves current indentation level, which is useful when coding. |
dd | Deletes an entire line. |
For example, look at the following piece:
By hitting dd you will completely remove a line, as demonstrated in the following example:
Hitting cc will clear the line and enter insert mode with the proper indent, as shown in the following example: