Tabs often breakup when the source code is moved between different system. In certain cases, tabs are not recognized and you get ugly looking symbols. The best way to avoid this frustration is to insert spaces instead of tabs. Obviously, you wouldn't want to hit the space tab 20 times on each line. The solution is to set the tab to insert predefined number of spaces instead of a tab. In vi, you can do this by setting expandtab as follows:
:set expandtab
To control the number of spaces, you still need to use tabstop as follows:
:set tabstop=4
To convert all existing tabs to spaces, use retab:
:retab
To set tab spaces inserted for indentation, use the shiftwidth as follows:
:set shiftwidth=4