993

I'm using Visual Studio Code as my code editor. I did a search on google but wasn't able to find anything about my issue.

The issue is simple, pressing ⇥ Tab in the editor does nothing. I'm expecting it to insert 4 spaces.

Anyone know what I can do to get ⇥ Tab working like expected?

jps
  • 20,041
  • 15
  • 75
  • 79
  • 97
    I had a problem where tab would just tab outside of the editor (navigating between UI elements). Restarting the editor fixed it. – Rivenfall Apr 02 '19 at 08:48
  • 3
    Not answering op questions, but for anyone else landing here after searching "visual studio tab not working" or having issue when hitting Tab in Visual Studio selects block instead of adding indentation. You can refer to [this answer](https://stackoverflow.com/a/39515014/2188407) by [Karel Tamayo](https://stackoverflow.com/users/2324535/karel-tamayo) – Justin Lessard Apr 10 '19 at 14:13
  • 48
    Remains an issue in Code v1.45.1 from June 2020. Solution is to delete the `Toggle Tab Key Moves Focus` keybinding of `Ctrl + M` (see the answer by @Addison). Strange 'feature'. – AlainD Jun 17 '20 at 09:27
  • See [VS reference for Tab trapping](https://code.visualstudio.com/docs/editor/accessibility#_tab-trapping) – Ricardo Nov 12 '21 at 01:42
  • 8
    Thanks! Pressing `ctrl+M` fixed it for me. no need to restart – John Henckel Jan 06 '22 at 20:03
  • 1
    @AlainD The idea is probably to allow moving around in the editor without leaving the keyboard :) – Nearoo Jan 11 '22 at 15:24
  • MacOS `Ctrl+Shift+M` to return normal tab behavior – amordo Jul 29 '22 at 11:22
  • Finally, someone is asking the *real* questions – toddmo Sep 29 '22 at 18:17

24 Answers24

2402

I had accidentally enabled a different mode for the tab key. Fixed it by pressing Cmd+Shift+M (for Mac), or Ctrl+M (for Windows).

From the Visual Studio Code Keybinding docs:

| Key      | Command                                 | Command id                       |
| Ctrl + M | Toggle Use of Tab Key for Setting Focus | editor.action.toggleTabFocusMode |

The current tab control mode should also show up in the status bar:

enter image description here

Arad Alvand
  • 8,607
  • 10
  • 51
  • 71
pypmannetjies
  • 25,734
  • 7
  • 39
  • 49
  • 93
    Happened to me when I tried to use the code collapse (`Ctrl + M, Ctrl + O`). Thx. – interesting-name-here Jan 07 '18 at 20:16
  • 3
    What is `Setting Focus ` ? – madhu131313 Jul 26 '18 at 07:12
  • 26
    Theres a bright green "Tab Moves Focus" on the statusbar at the bottom if you have mistakenly pressed Ctrl+M. – Jannunen Dec 04 '18 at 11:29
  • 6
    @Jannunen you're right, sadly for us who have 25inch screens, nobody is gonna notice that teeny tiny thing in the corner... – strwoc Mar 08 '19 at 15:10
  • 9
    What a truly peculiar setting. It's especially confusing because Ctrl-M is used to open up a development menu in the Android emulator (writing in React Native / Expo). I must have accidentally pressed it when VSCode was open and not the emulator. What a bewilderingly strange feature, though. – Teekin Oct 06 '19 at 19:10
  • Note: you have to be outside the editor for `Ctrl + m` to switch. – Artur Nov 03 '19 at 03:40
  • 4
    Delete the keybinding for `Toggle Tab Key Moves Focus` immediately so this never happens again! See answer by @Addison. – AlainD Jun 17 '20 at 09:29
  • ctrl+M didn't do anything but you can click the Tab Moves Icon in the statusbar in the screenshot above... – woony Jul 16 '20 at 06:26
  • 2
    Ctrl + m for Linux as well. – Gloria Chen Sep 07 '21 at 00:43
  • I changed my shortcut to 'Ctlr + m Ctrl + o' so it will not happen again by accident – ryan2johnson9 Mar 29 '22 at 20:20
  • Just stumbled upon this answer and came to upvote it again, only to realize I had already upvoted it in the past haha. – pooley1994 Aug 09 '23 at 18:09
345

Click "Tab Moves Focus" at the bottom right in the status bar. That's it.

enter image description here

I believe I had pressed ctrl+M. When doing this, the "Tab Moves Focus" tab/button showed up at the bottom right. Clicking on that makes it go away and starts working again.

You can type ctrl+M again to toggle it off as other answers have pointed out, but that's not as easy to remember as just clicking on it.

Tony L.
  • 17,638
  • 8
  • 69
  • 66
  • 3
    Saved me, I do not know how I enabled it but I installed a new keyboard and suddenly TAB was jumping into different windows. – El Dude Apr 30 '21 at 22:08
  • Microsoft products have many rubbish built in. another famous is Multiple Desktop in Windows 10, or unable to Create Desktop Shortcut in Windows 10 . so when you try to add Shortcut for Skype App into Desktop, good luck – duchuy Jun 08 '21 at 09:27
  • ctrl + M toggling solve the issue – Mohamed Raza Mar 09 '22 at 22:12
331

To fix the issue

Pressing ctrl+M causes the ⇥ Tab key to move focus instead of inserting a ⇥ Tab character.
Turn it off by pressing the shortcut again.

To disable the shortcut

  1. Open "Keyboard Shortcuts" with ctrl+K, then ctrl+S.
    Or go to File > Preferences > Keyboard Shortcuts.
  2. Search for toggle tab key moves focus.
  3. Right Click, Remove Keybinding.
Addison
  • 7,322
  • 2
  • 39
  • 55
  • 5
    Thank you for this! I use `ctrl + m` -> `ctrl + k` -> `ctrl + 0` to collapse code and almost daily I accidentally break my tab functionally before this :) – ttugates Aug 28 '19 at 13:36
  • 1
    I just installed MSVS 2019. I don't see Preferences under the File tab. ctrl-k, ctrl-s opens a list of snippets. I don't see a "toggle tab key moves focus" option. Which version of MSVS are you using? – riderBill Nov 04 '19 at 22:36
  • 1
    @riderBill - This is for the latest VS Code 1.39.2 (2019-10-15). You are using [Microsoft Visual Studio](https://en.wikipedia.org/wiki/Microsoft_Visual_Studio), which is not to be confused with [Visual Studio Code](https://en.wikipedia.org/wiki/Visual_Studio_Code). – Addison Nov 05 '19 at 00:00
  • Oh. <:^| My mistake. But not (entirely) my fault. I'll plead "Microsoft is an industry leader in poor choices for naming new products." As is Google. Ever try to search for help on Google Messages? [Sigh] – riderBill Nov 07 '19 at 17:52
  • With no obvious indication as to what's happening, what an utterly stupid UI design. Thanks for the answer. :) – Adambean May 14 '21 at 14:19
  • `Ctrl+Shift+M` for MacOS to restore normal tab behavior – amordo Jul 29 '22 at 11:25
95

Click on the explorer or any other window that is not the editor then press Ctrl + Shift (for Mac only) + M, this is the command to "Toggle Tab Key Moves Focus" on the Keyboard Shortcuts.

JBallin
  • 8,481
  • 4
  • 46
  • 51
Airton Gomes de Lima
  • 1,317
  • 12
  • 19
23

In, my case I followed this advice and changed this emmet setting in vscode to false:

"emmet.triggerExpansionOnTab": false

I was receinving the error Cannot read property 'value' of null. It solved the problem immediatelly.

Lucas Basquerotto
  • 7,260
  • 2
  • 47
  • 61
20

Try CTR + M it will work like before.

rubimbura brian
  • 619
  • 6
  • 10
14

As of December 2018 on macOS Mojave 10.14.2 using VSCode 1.29.1 the default keybinding for 'Toggle Tab Key Moves Focus' is set to Command+Shift+M. If you got stuck with this, using that key combo should fix the issue.

Do Command+K Command+S to pull up the Hotkeys Settings and then search for Toggle Tab Key Moves Focus or editor.action.toggleTabFocusMode if you want to change the key combo.

flux9998
  • 330
  • 2
  • 11
  • 1
    On Windows it's just `Ctrl+M` by default to `Toggle Tab Key Moves Focus`. And Dan, that's a tad hyperbolic, considering the default in Visual Studio to format a document is actually Ctrl+K, Ctrl+D - http://visualstudioshortcuts.com/2017/ – KymikoLoco Apr 25 '19 at 15:34
9

Had this problem. Simply press "Ctrl + M" (On Windows). Likely "CMD+M" on Mac.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Alalade Samuel
  • 574
  • 5
  • 6
7

I am using code on xfce - did the following to fix the Tab key behavior:

File -> Preferences -> Settings

search for "keyboard.dispatch"

copy to right panel and change value from "code" to "keyCode"

Reload code

Sagi
  • 89
  • 1
  • 1
6

All the above failed for me. But I noticed shift + ⇥ Tab worked as expected (outdenting the line).

So I looked for the "Indent Line" shortcut (which was assigned to alt + ctrl + cmd + 0 ), assigned it to tab, and now I'm happy again.


Next morning edit...

I also use tab to accept snippet suggestions, so I've set the "when" of "Indent Line" to editorTextFocus && !editorReadonly && !inSnippetMode && !suggestWidgetVisible.

Nazim Kerimbekov
  • 4,712
  • 8
  • 34
  • 58
Félix Paradis
  • 5,165
  • 6
  • 40
  • 49
6

[Edit] This answer is for MSVS (the IDE, as opposed to VS Code). It seems Microsoft and Google go out of their way to choose confusing names for new products. I'll leave this answer here for now, while I (continue to) look for the equivalent stackoverflow question about MSVS. Let me know in the comments if you think I should delete it. Or better, point me to the MSVS version of this question.

I installed MSVS 2017 recently. None of the suggestions I've seen fixed the problem. The solution I figured out works for MSVS 2015 and 2017. Add a comment below if you find that it works for other versions.

Under Tools -> Options -> Text Editor -> C/C++ -> Formatting -> General, try unchecking the "Automatically indent when I type a tab" box. It seems counter intuitive, but it fixed the problem for me. enter image description here

riderBill
  • 818
  • 9
  • 16
  • Same in VS Community 2022. This is a mislabeled option. Yes, I want tab to indent, but I still want tab to work to format other parts of the line if not at the beginning. The VS2022 IDE disables `tab` if not used at the beginning of the line if this option is checked. Thank you! – David C. Rankin Apr 28 '23 at 16:48
3

For those of you not about that space bar life (- _ - )( - _ -)

  1. Keybinding for ⇥ Tab isn't set to anything so you have to do it manually

  2. Navigate to Preferences/Environment/Keybindings and search for "tab"

  3. Click on Edit Binding at the bottom and press the tab key.

  4. Press "Apply" then "Ok"

  5. Key bound!

Nazim Kerimbekov
  • 4,712
  • 8
  • 34
  • 58
2

Maybe another program is interfering? Closing Teamviewer fixed the problem for me.

Steven Delrue
  • 423
  • 5
  • 8
  • Same for me!!! I never open a TeamViewer, and I accidentally left it open. To add more info: I had another instance of VS Code running, and in it the tab was working fine, while in the other tab was not working. After closing TeamViewer, tab works in both instances! – Miloš Stanić Nov 09 '18 at 10:03
2

I've had this happen before as well, where there was TeamViewer client takes the control of the TAB key. You won't know this until you close the TV window that you have open in the background.

Arash
  • 3,628
  • 5
  • 46
  • 70
vr_driver
  • 1,867
  • 28
  • 39
2

For some reason, after an update, my tab key was unbinded of 'tab' default behaviour. So I have to open File>Preferences>Keyboad Shortcuts, search for the simple "tab" line, and bind to the tab key again. Pretty awkward, but worked.

2

On Mac,
Preferences -> settings -> Search for "tab"
Uncheck Insert spaces when pressing tab enter image description here

0

Make sure this is NOT checked :

[ ] Tools | Options | Text Editor | C/C++ | Formatting | Automatic Indentation On Tab

Let me know if this helped!

Archon 808
  • 180
  • 1
  • 8
0

Check your key mapping (File > Preferences > Key Mapping) [Ctrl+K Ctrl+S]. In the input line at the top write 'tab' and bind tab command with tab key.

It works for me. Some extension overwrite it.

Matt
  • 29
  • 1
  • 3
0

In 2022, above not working any more, Microsoft changed the key binding

On Mac, Cmd + shift + M no longer working

Instead you should use : ctrl + shift + M

Here is evidence: enter image description here

hoogw
  • 4,982
  • 1
  • 37
  • 33
0

Had the same issue on Mac. The Ctrl + Shift + M solution was not the correct one in my case. The indentation of a code line when pressing the Tab key was not possible because the key binding for indentation was set to a 4-key combination.

I did reset it to the Tab key in the key bindings settings (Preferences > Keyboard Shortcuts) and added && !config.emmet.triggerExpansionOnTab to the when expression, since I use the emmet plugin.

jessman5
  • 19
  • 2
0

None of the other answers worked for me.

If your tab is not inserting space but focusing button element then following solution will work for you :)

Just set a keybindings to tab command like following image.

If your tab is not inserting space instead focusing then following solution will work for you

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
-1

Problem could be caused by an Application on your computer

For me the problem got solved after closing Any Desk on my computer . I had it open to change some files on my remote server, and it's blocking the ability to tab
If you want to check , open your task manager and you will find it there. just right click it and select end task and tab will be back to normal.

AnyDesk

Yasser CHENIK
  • 370
  • 1
  • 6
  • 17
-2

None of the above worked for me. For me, the issue was that the file wasn't editable by VSCode. You'll see a small padlock on the file tab on top. Just close the tab and open the file again. Tab should be working as usual.

Devorein
  • 1,112
  • 2
  • 15
  • 23
-3

Not sure what operating system you're on, but there was a known issue with the tab key on one of the more recent releases of VS Code for Mac OS X. The bug has been fixed in the latest release (0.10.9).

On Mac OS X, you can check for the latest update by opening VS Code and then going to [Code > Check for Updates].

Sources and more information:

hxlnt
  • 618
  • 7
  • 7