I want to configure Vim to use spaces for
<Tab>s everywhere. Therefore, I've had a look at
:h tabstop to figure out how to perform the configuration.
Looking at the help text, option 2. seems appropriate for my use case. However, it doesn't mention
softtabstop, why not? Without setting
<Tab> I insert result in the default number of spaces for the
filetype (4 for Python), and not the value configured for
softtabstop be set when using option 2? If not, then indentation and
<Tab>s inserted in Insert mode results in different number of spaces, which is awkward.
Bonus: What is the standard way of handling
<Tab>s in Vim that most users opt for?
Bonus: what is meant by "Then Vim
will use a mix of tabs and spaces, but typing
behave like a tab appears every 4 (or 3) characters." in option 1?
Number of spaces that a <Tab> in the file counts for. Also see |:retab| command, and 'softtabstop' option. Note: Setting 'tabstop' to any other value than 8 can make your file appear wrong in many places (e.g., when printing it). There are four main ways to use tabs in Vim: 1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4 (or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim will use a mix of tabs and spaces, but typing <Tab> and <BS> will behave like a tab appears every 4 (or 3) characters. 2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use 'expandtab'. This way you will always insert spaces. The formatting will never be messed up when 'tabstop' is changed. 3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a |modeline| to set these values when editing the file again. Only works when using Vim to edit the file. 4. Always set 'tabstop' and 'shiftwidth' to the same value, and 'noexpandtab'. This should then work (for initial indents only) for any tabstop setting that people use. It might be nice to have tabs after the first non-blank inserted as spaces if you do this though. Otherwise aligned comments will be wrong when 'tabstop' is changed.