Remove all arbitary spaces before a line in Vim

耗尽温柔 提交于 2019-11-26 13:04:50

问题


I\'v written a plugin where it comes to parsing a XML tag. The content inside the tag is indented and when i copy the parsed string into the file it\'s gettting like:

    Example line
        This is part of the parsed line
        Thats goes one
    End of line

What I want is to remove all spaces in front of these lines, the final text should be

Example line
This is part of the parsed line
Thats goes one
End of line

I\'ve tried to use = but it doesn\'t work the way I want. How can I do that with minimal key strokes ?


回答1:


To format a line to the left I use :left. Use this format an entire file:

:%le



回答2:


A simple search/replace s/^\s*// should do the trick, but it's probably not the minimal version.




回答3:


Personally I would visually select the lines with V, then use 99< to push the text as far left as it could go.




回答4:


Just type d followed by w followed by j at the beginning of each line.




回答5:


How about this:

:%s/^ *//

Or are you looking for a vim-script solution?




回答6:


To remove initial spaces and tabs at specified line numbers (E.g. from lines 5 to 10),

:5,10s/^\s*//



回答7:


The search/replace suggested by Lukáš Lalinský or the %le approach in the wikia page is probably the way I'd do it, but as another alternative you could also do:

:%< 99

As a quick way to shift the whole file (%) 99 times to the left.




回答8:


Remove all consecutive spaces: :%s/ */ /g

It was useful to me to go from:

$screen-xs-min:              480px;
$screen-sm-min:              768px;
$screen-md-min:                992px;
$screen-lg-min:                  1200px;

To:

$screen-xs-min: 480px;       
$screen-sm-min: 768px;       
$screen-md-min: 992px;           
$screen-lg-min: 1200px;                                                                                                 



回答9:


Yet another way to achieve this is using the the normal command :h :normal-range

:%norm d^

This goes to column 0 in each line (%) and deletes (d) to the first non-white character(^).

This is slightly more to type as the accepted answer, but allows for easy extension if you have a more complex scenario in mind, such as additional un-commenting or so:

:%norm d^I# 

Resulting in:

#Example line
#This is part of the parsed line
#Thats goes one
#End of line


来源:https://stackoverflow.com/questions/4625598/remove-all-arbitary-spaces-before-a-line-in-vim

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!