How do I indent a single line multiple times in vi or vim?
VimViIndentationText IndentVim Problem Overview
I've found several answers on how to indent multiple lines in vim, I want to know how to take a single line and indent it more than once. In effect, I want a shorter version of the following command: ">>>>>>>>>>" (That is 10 right bracket "greater-than" signs.)
Vim Solutions
Solution 1 - Vim
Select what you want (typically with v or Shift+v) then type 5>
.
If you need to fix or repeat the same selection, use gv.
Solution 2 - Vim
You can select the current line by pressing v
, and then type 5>
to indent the current line 5 times, the equivalent of pressing >
10 times.
Solution 3 - Vim
One of the answers to "How do I indent multiple lines quickly in vi" showed me a neat trick to remap >
in visual mode to reselect visual mode. In your .vimrc
...
vnoremap < <gv
vnoremap > >gv
Then I just select the line (or lines) you want to indent and press the appropriate direction as many times as you want.
Solution 4 - Vim
Indent once the use . to redo the previous command or u to undo it.
Solution 5 - Vim
From vim
help: :help >
> To move a line several 'shiftwidth's, use Visual mode or the : commands.
>
> For example:
>
> Vjj4> move three lines 4 indents to the right
> :<<< move current line 3 indents to the left
> :>> 5 move 5 lines 2 indents to the right
> :5>> move line 5 2 indents to the right
Or simply, >>
and repeat the command with .
in normal mode.