THE OTHER SIDE
If you have selected some text in Visual mode, and discover that you need to
change the other end of the selection, use the "o" command (Hint: o for other
end). The cursor will go to the other end, and you can move the cursor to
change where the selection starts. Pressing "o" again brings you back to the
other end.
When using blockwise selection, you have four corners. "o" only takes you to
one of the other corners, diagonally. Use "O" to move to the other corner in
the same line.
Note that "o" and "O" in Visual mode work very differently from Normal mode,
where they open a new line below or above the cursor.
==============================================================================
*04.5* Moving text
When you delete something with "d", "x", or another command, the text is
saved. You can paste it back by using the "p" command. (The Vim name for
this is put).
Take a look at how this works. First you will delete an entire line, by
putting the cursor on the line you want to delete and typing "dd". Now you
move the cursor to where you want to put the line and use the "p" (put)
command. The line is inserted on the line below the cursor.
a line a line a line
line 2 dd line 3 p line 3
line 3 line 2
Because you deleted an entire line, the "p" command placed the text line below
the cursor. If you delete part of a line (a word, for instance), the "p"
command puts it just after the cursor.
Some more boring try text to out commands. ~
---->
dw
Some more boring text to out commands. ~
------->
welp
Some more boring text to try out commands. ~
MORE ON PUTTING
The "P" command puts text like "p", but before the cursor. When you deleted a
whole line with "dd", "P" will put it back above the cursor. When you deleted
a word with "dw", "P" will put it back just before the cursor.
You can repeat putting as many times as you like. The same text will be used.
You can use a count with "p" and "P". The text will be repeated as many times
as specified with the count. Thus "dd" and then "3p" puts three copies of the
same deleted line.
SWAPPING TWO CHARACTERS
Frequently when you are typing, your fingers get ahead of your brain (or the
other way around?). The result is a typo such as "teh" for "the". Vim
makes it easy to correct such problems. Just put the cursor on the e of "teh"
and execute the command "xp". This works as follows: "x" deletes the
character e and places it in a register. "p" puts the text after the cursor,
which is after the h.
teh th the ~
x p
==============================================================================
*04.6* Copying text
To copy text from one place to another, you could delete it, use "u" to undo
the deletion and then "p" to put it somewhere else. There is an easier way:
yanking. The "y" operator copies text into a register. Then a "p" command
can be used to put it.
Yanking is just a Vim name for copying. The "c" letter was already used
for the change operator, and "y" was still available. Calling this
operator "yank" made it easier to remember to use the "y" key.
Since "y" is an operator, you use "yw" to yank a word. A count is possible as
usual. To yank two words use "y2w". Example:
let sqr = LongVariable * ~
-------------->
y2w
let sqr = LongVariable * ~
p
let sqr = LongVariable * LongVariable ~
Notice that "yw" includes the white space after a word. If you don't want
this, use "ye".
The "yy" command yanks a whole line, just like "dd" deletes a whole line.
a text line yy a text line a text line
line 2 line 2 p line 2
last line last line a text line
last line
"Y" was originally equivalent to "yank the entire line", as opposed to "D"
which is "delete to end of the line". "Y" has thus been remapped to mean
"yank to end of the line" to make it consistent with the behavior of "D".
Mappings will be covered in