I have found it very convenient to use tab characters for indentation in C++, and this has been supported by all of the compilers and text editors I have used before Arduino,.
By default the Arduino IDE replaces each entered tab with a pre-set number of spaces. While this is also the default in one of the other compilers I have used, I have never previously had any real difficulty changing to my preference of keeping entered tab characters intact.
The Arduino IDE stores user preferences in the file 'preferences.txt', and when I first looked it had two lines relating to tabs; 'editor.tabs.expand=true' and 'editor.tabs.size=2'. With the IDE not running I changed 'expand=true' to 'expand=false'. But when I then started the IDE I found that it had decided to ignore the tab key altogether!
How can I can persuade it to just insert a tab into the source file when I press the tab key, as god intended? (By 'god' I obviously mean Dennis, Ken, and Bjarne). This problem occurs under XP (SP3) but not Win 8.1.
I like using tabs also.
I use Geany to edit my Arduino code - you can select "use external editor" in Preferences
...R