vim text objects
For a few weeks months now I’m learnings how to use
VIM text-objects. There is
an extended help wth help text-objects in VIM. I’m trying to condense the
VIM help in a smaller blog entry here.
What are a text-objects in vim? Text-objects are things like a
‘paragraph’ or the text between braces or something like a
word. Text-objects can be used with the normal vim commands y, d and
c. To make you really understand it, I can recommend using control-V
to actually visually select your text object.
In vim’s text-objects documentation they talk about an important property. A text-object selection is either inner or not…
Some text-object selectors:
aw- a word, works on wordsiw- inner word, works on wordsab- brace, works with text between ( and )ib- inner brace, works with text between ( and )...- there are many more
Note: the i is used to denote inner selection, the a for
normal ones.
Consider the following text:
(passed init=/sbin/bootchartd)
(this is some stuff from Ubuntu’s bootchart implementation).
Now an inner brace selection will be
passed init=/sbin/bootchartd
without the braces. An inner text-object selector will always select less than the normal block selection. The normal brace selection will select
(passed init=/sbin/bootchartd)
with the braces. You can check this for your self with the
combo: control-V+a+b (normal selection) or control-V+i+b (inner
selection). Note the selection works from anywhere inside the
braces: it does not matter where the cursor is positioned.
With dib you delete the inner brace text-object.
The word text-object works by letting you select only the word (= inner selection) or the word + whitespace (= normal selection). Thus, with the same sentence as above and the cursor positioned on the p of passed.
(passed init=/sbin/bootchartd)
control-V+i+w, selects
(passed init=/sbin/bootchartd)
In contrast with, control-V+a+w, which selects
(passed init=/sbin/bootchartd)
With the space after ‘passed’ also.
See vim’s online help for more info, but I hope this little text was helpful to you (It certainly helped me).