Strip off tabs in vim

When you paste a block of text into a Putty window, many times you’ll get an increasing number of leading tabs. Not so if you use gnome-terminal (IIRC). Quite annoying in a Windows world.

Strip tabs and spaces out from current position to the end of the file with:

:.,$s/^[<tab>]*\s*//

Or perhaps you only want a small block in the middle of the file changed. First, turn on line numbers.


:set number

Then search and replace on specific line numbers (in this example lines 15 through 41).

:15,41s/^[<tab>]*\s*//

Then use Ctrl-V (down arrow or h,j,k,l keys to select block) and hit “>” to re-indent. Works much better than reformatting by hand.

Comments

phil76
Posted on 6th March, 2006

most of the time, highlighting the text in visual block mode and then pressing = works, too - it’ll be indented correctly afterwards.

Dillon
Posted on 9th March, 2006

Phil76, I couldn’t get your tip to work on a bit of XML text. Does it only work in certain situations or when vi thinks you are working in a specific programming language?

Leave your Comment