How to shift a block of text to the right/left in Sublime Text 2

Solution 1:

You can use ctrl+ ] to indent a line (or highlighted block), and ctrl + [ to unindent.

On OSX this is cmd + ]/[.

You can also use tab/shift+tab, but these will start from wherever the cursor is currently, while ctrl+[/] will move the whole line/block

Solution 2:

Check out colinta's SublimeMoveText. Install as a normal plugin (It's called "MoveText" by the Package Manager), but keybindings have to be set up manually. Here is what I did:

// MoveText
// move_text_left: Moves the selected text one character to the left
// move_text_right: Moves the selected text one character to the right
// move_text_up: Moves the selected text one line up
// move_text_down: Moves the selected text one line down
{ "keys": ["ctrl+shift+n"], "command": "move_text_left" },
{ "keys": ["ctrl+shift+m"], "command": "move_text_right" },

Highlight what you want to move. If it is more than one line, use column selection as @Jivings suggested (shift+right-click on Win/Linux, option+mouse on OSX). Then use the keybinding to move text left/right. You can also set up keybindings to move the selected up/down a line.

Solution 3:

Use column selection and then insert or delete spaces or tabs.

Or highlight a selection of text and press tab to move it right or shift+tab to move it left.