Thursday, November 24th, 2005

Tabs are evil

Filed under: — lemire @ 15:23

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.

No Comments »

No comments yet.

RSS feed for comments on this post.

Leave a comment

Warning: When entering a long comment, please ensure that you make copy of your text prior to submitting it. If the server should fail or if you hit a bug, you might lose your work. I am not responsible for your lost effort.

To spammers: I carefully review every single post and make sure that spam gets deleted. You are wasting your time if you are manually entering spam using this form. Read my terms of use to see what I consider to be abusive.

Example: I + II + IX= XII. Yes, you have to enter a roman numeral. (Answer must be in upper case.)

« Blog's main page

29 queries. 0.556 seconds. Valid XHTML

Powered by WordPress

Subscribe to this blog in a reader or by Email.