cdyson37
cdyson37

Reputation: 8051

How to shift a block of code left/right by one space in VSCode?

In VSCode, I can use alt-up and alt-down to move a line or block up or down, but I can't find a command to increase or decrease indent by one space.

I can indent/outdent by multiples of tabSize, but that's not quite general enough for me, and I don't really want to set tabSize=1.

(In Vim I made handy shortcuts to move a line or lines up/down/left/right with ctrl-k/j/h/l - it was probably the most useful bit of Vimscript I ever wrote.)

Upvotes: 133

Views: 431142

Answers (8)

senjoux
senjoux

Reputation: 314

Another work-around (my installed VS Code v1.53.0)

  1. Select block of code
  2. Go to "Selection" > "Column Selection mode"
  3. Hit backspace to shift

Upvotes: 5

Samir Kape
Samir Kape

Reputation: 2065

No need to use any tool for that

  1. Set Tab Spaces to 1.
  2. Select whole block of code and then press Shift + Tab

Shift + Tab = Shift text right to left

Upvotes: 102

Arjun Kesava
Arjun Kesava

Reputation: 790

In MacOS, a simple way is to use Sublime settings and bindings.

Navigate to VS Code.

Click on Help -> Welcome

On the top right, you can find Customise section and in that click on Sublime.

Bingo. Done.

Reload VS Code and you are free to use Command + [ and Command + ]

Upvotes: 6

Lloyd Armstrong
Lloyd Armstrong

Reputation: 1367

UPDATE

While these methods work, newer versions of VS Code uses the Ctrl+] shortcut to indent a block of code once, and Ctrl+[ to remove indentation.

This method detects the indentation in a file and indents accordingly.You can change the size of indentation by clicking on the Select Indentation setting in the bottom right of VS Code (looks something like "Spaces: 2"), selecting "Indent using Spaces" from the drop-down menu and then selecting by how many spaces you would like to indent.

Upvotes: 125

san1512
san1512

Reputation: 1023

Current Version 1.38.1

I had a problem with intending. The default Command+] is set to 4 and I wanted it to be 2. Installed "Indent 4-to-2" but it changed the entire file and not the selected text.

I changed the tab spacing in settings and it was simple.

Go to Settings -> Text Editor -> Tab Size

Upvotes: 3

Alex
Alex

Reputation: 67531

There was a feature request for that in vscode repo. But it was marked as extension-candidate and closed. So, here is the extension: Indent One space

Unlike the answer below that tells you to use Ctrl+[ this extension indents code by ONE whtespace 🤦‍♂️.

enter image description here

Upvotes: 199

Taher A. Ghaleb
Taher A. Ghaleb

Reputation: 5240

Recent versions of VSCode (e.g., Version 1.29 at the time of posting this answer) allow you to change the Tab/Space size to 1 (or any number between 1 and 8). You may change the Tab/Space size from the bottom-right corner as shown in the below image:

Change Tab/Space size

Click on Spaces:4. Then, select Indent Using Spaces or Indent Using Tabs and choose the size 1.

Hope it helps.

Upvotes: 15

garyh
garyh

Reputation: 2852

Have a look at File > Preferences > Keyboard Shortcuts (or Ctrl+K Ctrl+S)

Search for cursorColumnSelectDown or cursorColumnSelectUp which will give you the relevent keyboard shortcut. For me it is Shift+Alt+Down/Up Arrow

Upvotes: 7

Related Questions