> On Thu, 4 Nov 2010, rameo wrote:
>
>> I find myself often to align blocks of text and thought to create a
>> regex to remove all leading spaces in a block.
>>
>> p.e.
>>
>> text a
>> text b
>> text c
>> text d
>>
>> I would like to select a visual block around these 4 pieces of text
>> and remove all leading spaces, how can I do this?
>> - I can't use "^" because it aligns the block at the beginning of the
>> line.
>>
>
> :'<,'>s/\%V\s*//
> | | | \- \s* - zero or more spaces
> | | \- \%V - matches inside the visual area
> | \- s/// - substitution
> \- '<,'> = visual range
>
> (Can't use \s\+ because it fails if the line contains, but doesn't
> start with, spaces).
>
Also missed another corner case (spaces all through the visual block and
beyond):
VV
text a
.. text b <
.text c <
text d
^^
Before, the '.. text b' would become 'text b', instead of ' text
b'. Fixed by adding a trailing \%V, per suggestion at :help /\%V
:'<,'>s/\%V\s*\%V//
--
Best,
Ben
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
No comments:
Post a Comment