Take the 2-minute tour ×

Does an auto-formatting tool exist for vi that'll allow me to define per language preferences?

edit: I'm not looking for syntax highlighting. I'm looking for something that will apply formatting rules to my code. (Like brace positioning, spaces around oeprators, etc)

share|improve this question

6 Answers 6

up vote 8 down vote accepted

Well, there's Vim which comes with a lot of languages covered already and which is easy to customize per language.

share|improve this answer

Vim has tons of support for filetype-specific customisations. You might find what you are looking for in there.

share|improve this answer

You can add a file in ~/.vim/ftplugin/ for each file type. For example, set ~/.vim/ftplugin/c.vim to

set tabstop=2 shiftwidth=2

This sets your indentation for C files to two spaces.

share|improve this answer
I found the default indent when auto-formatting ruby in vim too big, this helped to set the indent. I've added this to my ~/.vimrc file along with configuration from this question: stackoverflow.com/questions/3785628/format-ruby-code-in-vim –  axk Feb 19 '11 at 11:24

You can use vim. If you're on GNU/Linux, take a look at /etc/vim/vimrc for global defaults. Some things you may want are "syntax on" "filetype indent on" and "set showmatch".

share|improve this answer

There is a vim plugin that enables formatting on your code from within vim. It's called vim-autoformat and you can dowload it here:


It integrates external code-formatting programs into vim. For example, if you want to format C, C++, C# or Java code, you can install the program astyle, and vim sets it as the format program automatically.

share|improve this answer

As Darrin says, "flee from the vi wasteland" and embrace the one true vim path instead! Your desired language preferences, assuming that they're not for SNOBOL or Simula, will thank you!

Edit: Actually extending the syntax highlighting to cover SNOBOL or Simula would not be that hard! (-:




share|improve this answer

Your Answer


