You don't need any plugins to do this.
Just select all lines (CTRL+A) and then from the menu select Edit → Line → Reindent.
This will work if your file is saved with an extension that contains HTML like .html
or .php
.
If you do this often, you may find this key mapping useful:
{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } }
If your file is not saved (e.g. you just pasted in a snippet to a new window), you can manually set the language for indentation by selecting the menu View → Syntax → language of choice
before selecting the reindent option.
If you want it for all files, go to Preferences -> Settings - Default/User
. But as several comments below indicate, Syntax Specific settings can limit it to just the languages you choose.
To limit this configuration to Ruby files, first open up a Ruby file in the editor, and then go to Preferences -> Settings - Syntax Specific
. This should open a settings window named Ruby.sublime-settings
Save these settings:
{
"tab_size": 2,
"translate_tabs_to_spaces": true,
"detect_indentation": false
}
Repeat for any other syntax types by opening a file of that type and going back to the preferences to open the correct preferences file for that syntax.
I have edited this to include the "detect_indentation" line per the requests in comments; I previously used the Default/User to set my tab size, and have not needed the tab detection, but whether that is due to the global config or due to the fact that I have rarely opened files with tabs, I do not know.
Restarting should not be necessary, although in some instances it can be.
Best Answer
.*\n.*\n