Vim, inverting words using text objects

1 minute read

Inverting two words followed by some characters

You have the following three words:

ARE HOW YOU

To invert the first two words you can use one of the following simple text ojbects solution:

Place the cursor inside the first word ARE and press the following key sequence:

dawwP

Or place the cursor inside the second word HOW and press the the following key sequence:

dawbP

Synthesis table:

The cursor is You press
Inside first word dawwP
Inside second word dawbP

The result is the same.

The key sequence daw, common to both solutions, is the text object.

you can read them as follows: Delete Around Word.

If you use the first solution you have to go to the next Word and Place the deleted word before it: wP (note che upper P).

If you use the second solution you have to go to the Back word_ and Place_ the deleted word before it: bP.

After both solutions you get the inversion of the first two words including the spaces:

HOW ARE YOU

Inverting two words NOT followed by some characters

You have, now, use another useful key command: the J one.

ARE HOW

With the cursor on the second word you can use the following sequence:

 diwOpJ

which means:

  1. diw: Delete Inner Word
  2. O: begin e new line abOve the cursor and press Esc
  3. p: puts the text object in the upper (current) line
  4. J: joins the upper line to the lower

After this solution you get the inversion of the two words with a space added:

HOW ARE 

If you need to delete che remaining space after the second word you can press $x in Normal Mode.

That’s all.

Thank You for your attention.