What's the easiest way to increase or decrease indentation for a large block of code in vi?
If your code is between curly braces, then put your cursor on one of the curly braces and use >%
or <%
.
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.
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>>
.
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
In insert mode, you can use Ctrl-T
and Ctrl-D
to (de-)intent the current line.
hit v to go into visual mode and arrow down so the whole block is selected then 12>>
Another useful command is, once you indent using '<' or '>', use '.' to repeat the command until it's lined up how you want it.
Also, you can look at http://vim.wikia.com/ for tips on this sort of thing.