Have you ever pasted code into Vim only to find that the formatting is completely messed up?
Me too. And I used to find it really annoying, because it would take me roughly forever to correct every line, one at a time.
Eventually, I realized that I changed indentation a lot. Like when I...
- move Sass to a place that is more or less indented
- copy CSS from Chrome into Vim
- refactor ruby code
It felt silly to spend so much time fixing indentation. I figured there was a better way.
= is the key I was looking for. Once you learn how to use it, you will
never want to go back to using any other text editor.
How do I use =?
Like a lot of things in Vim, you have a few choices.
1. Correct one line
Just press ==.
2. Correct a chunk of text
Press =, followed by a motion (j, k, p, G, etc.)
For example, I use =ap ('around paragraph') a lot
to indent entire methods or chunks of CSS with one move.
3. Visual
Visually select a block of text. Then, press =.
The moves I use every day
These are my favorite ways to use =:
== - correct the current line
=ap - correct the current 'paragraph'
=G - correct to the end of the file
Can I correct an entire file?
Yup, no problem. Just do gg=G.
What is this magic?
= is called a filter. I haven't found a great use for them other
than =, but you can do some crazy things like run text through shell
programs such as sort and uniq.
Check the docs with :help filter.