Reputation: 777
Say I have the following code:
<p>
Hello
</p>
And I want to make it
<p>Hello</p>
I would like to put the cursor in normal mode at the end of line 1, so on the ' > ' and have a command to delete all spaces until the next character. The closest I can think of is the motion
d/Hello
which deletes everything until Hello but the issue is that it deletes also the character under the cursor (the ' > ') so I end up with
<pHello
</p>
How would you do that?
Upvotes: 14
Views: 8362
Reputation: 8437
When standing anywhere in the second line (the one that says Hello
), press the following keys: ^d0vatgJ
. Simply explained:
H
If you start on the H
, you can skip the ^ part.
Upvotes: 2
Reputation: 36252
One way when you won't need to repeat this action many times.
JxJx
Explanation:
J # Join current line with next one but substitute end of line with a space.
x # Remove the space.
Jx # Repeat same process for last line.
Upvotes: 19
Reputation: 161604
There's a tag
text-object in vim:
:'<,'>
:'<,'>j
:help v_at
at "a tag block", select [count] tag blocks, from the
[count]'th unmatched "<aaa>" backwards to the matching
"</aaa>", including the "<aaa>" and "</aaa>".
See |tag-blocks| about the details.
When used in Visual mode it is made characterwise.
Upvotes: 6