Your comments

{ "keys": ["shift+alt+d"], "command": "set_setting", "args":
{
"setting": "draw_white_space",
"value": "all"
}
},
{ "keys": ["shift+alt+a"], "command": "set_setting", "args":
{
"setting": "draw_white_space",
"value": "selection"
}
},
Also, how did you find the existence of the draw_white_space command?
reading Preferences -> Settings - Default
And how can I find the values accepted by the command? 

explore KeyBindings file, or try to find command source code in ST2 Packages in *.py files

also try to write Sublim plugin, and you will learn more about ST2

Only for spaces (as dots) and tabs (as horizontal line)
Preferences -> Settings - User
"draw_white_space": "all",

Preferences -> Settings - User

"ensure_newline_at_eof_on_save": true,
try to play with:
translate_tabs_to_spacesuse_tab_stopsdetect_indentation

in Preferences -> File Settings - Default


hope it help

add in your Preferences -> Key Bindings - User
{ "keys": ["ctrl+alt+o"], "command": "prompt_add_folder" },
try to look at SublimeRope (plugin autocompletion for python)
i think its not possible, because output cant understand when there error and when not
my solution is keep open output always, or close it every time by pressing escape
another problem, if one of this "if|case|receive|after|fun|try|catch|begin|query" placed between quotes, we get unnecessary auto-indet, like this:
    io:format("test if test", []),\n
        |

but i dont know how to resolve this