tags:

views:

1348

answers:

10
+5  Q: 

vi indentation

What's the easiest way to increase or decrease indentation for a large block of code in vi?

+2  A: 

Mark it, then use > and <.

Svante
+3  A: 

If your code is between curly braces, then put your cursor on one of the curly braces and use >% or <%.

Greg Hewgill
A: 

use two angle-brackets ("<<" or ">>") for one line left or right by shiftwidth characters. You can do this with the common line-range indicators - ":m,n", brace/bracket/paren matching, etc.

Or "<", then a motion indicator, then another "<".

Or "<12<" shifts the next 12 lines left.

le dorfier
+8  A: 

In vim (not sure if this applies to you too), you use >> to indent one line. As with nearly every command in vim, type in a number before the command to perform is multiple times. So to indent the next 50 lines, type 50>>.

Harley
+5  A: 

Autoidenting:

For a { } block I use the command: =iB (with the cursor inside the block to ident)

For re-identing a complete file, I use gg=G

Now for increase or decrease identation on a block, you have to select it (I use viB command) and then you do >> or << and if you want to repeat the identation just use the dot .

Also remember to set your identation settings with

:set shiftwidth=NUMOFSPACES

and

:set softtabstop=NUMOFSPACES

CMS
>} is pretty useful.
jop
A: 

In insert mode, you can use Ctrl-T and Ctrl-D to (de-)intent the current line.

MizardX
+1  A: 

hit v to go into visual mode and arrow down so the whole block is selected then 12>>

luke
+2  A: 

Another useful command is, once you indent using '<' or '>', use '.' to repeat the command until it's lined up how you want it.

Paul Betts
+2  A: 

Also, you can look at http://vim.wikia.com/ for tips on this sort of thing.

Jamie Love
A: 

:50,100>

Will indent lines 50 through 100 once

:50,100>>

Will indent lines 50 through 100 twice

also works with < and << etc.