How do I fix the indentation of an entire file in Vi?
=
, the indent command can take motions. So, gg
to get the start of the file, =
to indent, G
to the end of the file, gg=G
.
Before pasting into the terminal, try :set paste
and then :set nopaste
after you're done. This will turn off the auto-indent, line-wrap and other features that are messing up your paste.
edit: Also, I should point out that a much better result than =
indenting can usually be obtained by using an external program. For example, I run :%!perltidy
all the time. astyle
, cindent
, etc. can also be used. And, of course, you can map those to a key stroke, and map different ones to the same keystroke depending on file type.