How do I shift a block of text to the left or right with Sublime Text 2?


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

  • 1
    at least on the mac version tab & shift-tab work on whole lines and the position of the cursor has no influence on it. – yamm May 8 '15 at 8:12

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.

  • 2
    Some people use this package with super+ctrl+left/right key bindings instead. Also, MoveText moves text by character position, not by word, which would have been handier for general text editing purposes. – Serge Stroobandt Aug 26 '14 at 12:11

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.

  1. Select lines of code and press "tab" key but it works just to indent to right
  2. For moving piece of code back and forth (left or right) use key combination: 'CTRL' + '[' and/or 'CTRL' + ']'
  • 1
    This duplicates information in the accepted answer. – bertieb Mar 18 '17 at 0:26
  1. Go to find replace (Ctrl + H)
  2. Select "Regular Expressions" and "In Selection" options.
  3. Select the block where you want to insert space.
  4. Replace all "^" with " "

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.