emacs: Just Spaces

 
 24.3 Tabs vs. Spaces
 ====================
 
 Normally, indentation commands insert (or remove) an optimal mix of
 space characters and tab characters to align to the desired column.  Tab
 characters are displayed as a stretch of empty space extending to the
 next “display tab stop”.  By default, there is one display tab stop
 every ‘tab-width’ columns (the default is 8).  SeeText Display.
 
    If you prefer, all indentation can be made from spaces only.  To
 request this, set the buffer-local variable ‘indent-tabs-mode’ to ‘nil’.
 SeeLocals, for information about setting buffer-local variables.
 Note, however, that ‘C-q <TAB>’ always inserts a tab character,
 regardless of the value of ‘indent-tabs-mode’.
 
    One reason to set ‘indent-tabs-mode’ to ‘nil’ is that not all editors
 display tab characters in the same way.  Emacs users, too, may have
 different customized values of ‘tab-width’.  By using spaces only, you
 can make sure that your file always looks the same.  If you only care
 about how it looks within Emacs, another way to tackle this problem is
 to set the ‘tab-width’ variable in a file-local variable (SeeFile
 Variables).
 
    There are also commands to convert tabs to spaces or vice versa,
 always preserving the columns of all non-whitespace text.  ‘M-x tabify’
 scans the region for sequences of spaces, and converts sequences of at
 least two spaces to tabs if that can be done without changing
 indentation.  ‘M-x untabify’ changes all tabs in the region to
 appropriate numbers of spaces.