Reputation: 13451
I am using the Vim editor. Here is my situation:
1111111111111
2222222222222
3333333333333
4444444444444
Above is the original code, I want to make them like below. What should I do to shift them all to the right?
1111111111111
2222222222222
3333333333333
4444444444444
Upvotes: 44
Views: 58308
Reputation: 431
Ctl+v
# for the Visual Block mode>
Upvotes: 1
Reputation: 1
Not mentioned here but very useful:
The :> and :< commands take a range, and additional > or < can be used. For example, :12,20>>> indents lines 12 to 20 inclusive three times
Source https://vim.fandom.com/wiki/Shifting_blocks_visually
Upvotes: 0
Reputation: 41
Ctlt+v
to select multiple lines.:
s/^/ /g
(e.g: for adding 4 spaces)Vim follows sed
to remove/add extra spaces from the start of lines like this:
sed -i 's/^/ /g' test.txt
sed -i 's/^ //g' test.txt
Upvotes: 1
Reputation: 1
For me the number need to be after, like >>4
, to move to right, or before, like 4<<
, to move to left. I use Vim 7.4.52.
Upvotes: -1
Reputation: 882806
In command mode, you can use >>
to indent a single line. 4>>
will indent the current and next three lines.
If you don't know how many lines in advance (it may be quite large), you can use ranges. Go to the first line of the range and enter ma
to place marker A. Then go to the last line and enter >'a
to indent from here to marker A. You can do all sorts of wonderful things with ranges.
How they're indented depends on a couple of things like your shiftwidth settings. I always have my shiftwidth and tabstop settings the same to avoid problems:
:set ts=4 sw=4
(for example).
Upvotes: 63
Reputation: 2233
If you've already selected the four lines in visual mode: >
will shift them shiftwidth
to the right. After they are shifted, the visual selection will be gone, but you can indent again via .
(repeat last command).
If you are normal mode, with your cursor anywhere on the first line:
>>
will indent that line,4>>
will indent all four lines,>3j
will do the same thing in a different way (indent from this line to three lines down),>}
will indent all of the lines until the end of the paragraph (i.e. to the first empty line, see :help object-motions
), and>ap
will indent all of the lines for a p-aragraph (see :help text-objects
), even if your cursor isn't on the first line.Again, you can repeat these commands via .
for deeper indentation levels (or you can set shiftwidth
appropriately).
If your file is nicely composed of "paragraphs" (and most of my code and prose is), I think you'll find the ap
text-object to be the most common way to work on blocks of text like this. You can also use text-objects
to speed up visual selection.
Upvotes: 33