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.

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.

Go do it. Configure your text editor properly.

Note: For some specific file formats, such as make files, tabs are necessary.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see