Tabs are evil
I thought I had written a piece about this, but no. So, there you go. Tabs are evil in text files. Why? Because the tab character (\t) has vaguely defined semantics. It means “insert x spaces” where x depends on the text editor and the preferences of the user.
For example, the following two lines of code will appear perfectly aligned to me, because I prefer short indentations (only 2 characters):
[space][space]print “dog”
[tab]print “cat”
But if someone types the following code
[space][space][space][space]print “dog”
[tab]print “cat”
then it won’t look aligned at all for me.
The solution? Tell your text editor to dynamically replace tabs by spaces. For vim, you can achieve this by putting the line “set expandtab” in your file “~\.vimrc” or by typing “:set expandtab” while vim is running. The equivalent should be possible with all good text editors.
Now, go do it. Configure you text editor properly.
Disclaimer: There is one case where this brings your trouble. Makefiles, for some odd reasons, require actual tabs. But I write a lot more code than makefiles and so should you.