VS Code and JetBrains Shortcuts Not Working on Mac? It's Usually macOS
When an IDE shortcut does nothing on a Mac, the editor is rarely the problem. macOS system shortcuts and global hotkeys take the keystroke first. Here's how to find which one and get it back.
IDEs are packed with keyboard shortcuts, and a lot of them use Control, which macOS also relies on for its own features. Add a launcher, a window manager, and a clipboard tool, and some of your editor’s shortcuts will stop reaching the editor.
The key point: if a shortcut does nothing in your IDE, the IDE usually never received it. Something earlier in the chain took it. Here’s how to confirm that, followed by the specific offenders.
First: confirm the editor isn’t getting the key
VS Code: open the Command Palette and run Developer: Toggle Keyboard Shortcuts Troubleshooting. Open the Output panel and press the shortcut. If VS Code logs the keypress and resolves it to a command, the problem is inside VS Code (a keybinding when clause or an extension). If it logs nothing, the keystroke never arrived and the cause is outside the editor.
JetBrains IDEs: open Settings → Keymap, click the search-by-shortcut icon (the magnifier with a keyboard), and press the combo. If the field doesn’t register the combo at all, something outside the IDE is taking it. If it does, the Keymap shows which action it’s bound to.
If the key never arrives, go through the list below.
⌃Space: input source switching
The most common one by far. As soon as you add a second keyboard layout or input method, macOS enables:
- ⌃Space: Select the previous input source
- ⌃⌥Space: Select the next source in Input menu
⌃Space is Trigger Suggest in VS Code and Basic Completion in JetBrains IDEs, so autocomplete stops working and your keyboard layout changes instead.
Fix: System Settings → Keyboard → Keyboard Shortcuts → Input Sources, and untick both. On a keyboard with a 🌐 key, you can switch layouts by pressing 🌐 (set under Keyboard → “Press 🌐 key to”). If you really need a shortcut for input sources, move it to something your editor doesn’t use.
⌘⇧A: the man page service
JetBrains uses ⌘⇧A for Find Action, which is arguably its most important shortcut. macOS ships a Service called Search man Page Index in Terminal on the same combo. Services only take the key when text is selected, so Find Action works most of the time and then opens a Terminal apropos window whenever you have a selection.
Fix: Keyboard Shortcuts → Services → Text, and untick Search man Page Index in Terminal. While you’re there, look through the rest of the Services list. Installed apps add their own Services with shortcuts, and they behave the same selection-dependent way.
⌃ + arrow keys: Mission Control and Spaces
Mission Control claims:
- ⌃↑: Mission Control
- ⌃↓: Application windows
- ⌃← / ⌃→: Move left / right a space
Editors, terminals, and custom keymaps (especially people coming from Linux or Windows keymaps, where Control-arrow moves by word) regularly use these.
Fix: Keyboard Shortcuts → Mission Control. Untick or rebind the entries. Many developers move Spaces switching to a Hyper key combo, which keeps it out of every editor’s way. See the Hyper key guide.
Function keys: F11, F12, and friends
By default the top row controls brightness, volume, and media, and F11 is Show Desktop. Debugger shortcuts (Step Over, Step Into, Resume) often use F-keys, so they either change your volume or reveal the desktop.
Fix: System Settings → Keyboard → Keyboard Shortcuts → Function Keys → turn on “Use F1, F2, etc. keys as standard function keys”, or hold fn. Then check Mission Control for Show Desktop on F11.
Global hotkeys from your other apps
This is the category System Settings can’t help with. Launchers, clipboard managers, screenshot tools, window managers, and screen recorders register global hotkeys, and a global hotkey always beats the IDE’s own binding. Examples that come up often:
- A window manager on ⌃⌥ + arrows, hiding editor bindings on the same keys
- A screenshot or recording tool on ⌘⇧2 through ⌘⇧6
- A clipboard manager on ⌘⇧V, which JetBrains uses for its clipboard history (“Paste from History”)
- A launcher or AI tool on ⌥Space or ⌘⇧Space
Finding these by hand means opening every utility’s settings. HotkeyClash does it in one scan. It reads your IDE’s menu shortcuts (VS Code and JetBrains both expose their main actions in the menu bar), every other running app’s menus, your Karabiner-Elements and skhd configs, and macOS system shortcuts, then lists every combo claimed more than once. A global hotkey shadowing an IDE menu item shows up as an amber potential conflict: it only hurts while the IDE is in front, which is exactly the symptom you’re seeing.
Search the results for the combo that’s failing, and you’ll see who else has it.
Karabiner and skhd rules
If you use Karabiner-Elements or skhd (often with yabai), your rules run before everything else. An skhd binding like alt - h : yabai -m window --focus west takes ⌥H from every app, IDE included.
Check: quit the remapper and try again. HotkeyClash parses both ~/.config/karabiner/karabiner.json and ~/.config/skhd/skhdrc, so remapper bindings appear alongside everything else and you don’t have to read the files by hand.
Checklist
- Confirm the IDE isn’t receiving the key (VS Code troubleshooting log / JetBrains keymap search)
- Turn off input source shortcuts if you use ⌃Space
- Untick the ⌘⇧A man page Service
- Rebind Mission Control’s ⌃-arrow shortcuts if your keymap uses them
- Sort out function keys vs. media keys
- Scan for global hotkeys and remapper rules with HotkeyClash
Once the key reaches the editor again, the editor’s own keymap takes it from there.
Frequently asked questions
Why doesn't Ctrl+Space trigger suggestions in VS Code on Mac?
macOS uses ⌃Space for 'Select the previous input source' once you have two or more keyboard layouts or input methods. The system takes the keystroke before VS Code gets it. Turn it off in System Settings → Keyboard → Keyboard Shortcuts → Input Sources, or rebind 'Trigger Suggest' in VS Code.
Why does ⌘⇧A open Terminal instead of Find Action in IntelliJ?
A macOS Service called 'Search man Page Index in Terminal' is bound to ⌘⇧A and runs whenever text is selected. Untick it in System Settings → Keyboard → Keyboard Shortcuts → Services → Text.
How do I check if a VS Code shortcut is being overridden?
Open the Command Palette and run 'Developer: Toggle Keyboard Shortcuts Troubleshooting', then press the shortcut. If nothing appears in the log, VS Code never received the keystroke, so something outside the editor (a macOS shortcut, a global hotkey, or a remapper) took it.
Can a Karabiner rule break IDE shortcuts?
Yes. Karabiner-Elements rewrites keys before any app sees them, so a rule written for one purpose can quietly change a combo your IDE uses. Disable Karabiner for a moment and retest, or scan your karabiner.json with HotkeyClash to see its bindings next to everything else.