diffutils: Tabs

 
 5.1 Preserving Tab Stop Alignment
 =================================
 
 The lines of text in some of the 'diff' output formats are preceded by
 one or two characters that indicate whether the text is inserted,
 deleted, or changed.  The addition of those characters can cause tabs to
 move to the next tab stop, throwing off the alignment of columns in the
 line.  GNU 'diff' provides two ways to make tab-aligned columns line up
 correctly.
 
    The first way is to have 'diff' convert all tabs into the correct
 number of spaces before outputting them; select this method with the
 '--expand-tabs' ('-t') option.  To use this form of output with 'patch',
 you must give 'patch' the '-l' or '--ignore-white-space' option (⇒
 Changed White Space, for more information).  'diff' normally assumes
 that tab stops are set every 8 print columns, but this can be altered by
 the '--tabsize=COLUMNS' option.
 
    The other method for making tabs line up correctly is to add a tab
 character instead of a space after the indicator character at the
 beginning of the line.  This ensures that all following tab characters
 are in the same position relative to tab stops that they were in the
 original files, so that the output is aligned correctly.  Its
 disadvantage is that it can make long lines too long to fit on one line
 of the screen or the paper.  It also does not work with the unified
 output format, which does not have a space character after the change
 type indicator character.  Select this method with the '-T' or
 '--initial-tab' option.