Ctrl-shift-space is a tremendously useful keyboard shortcut in IntelliJ IDEA, and I use it all the time. It provides “SmartType” completion. Sounds great, if a little vague… here’s an example.
List<String> strList = new
If you were to invoke SmartType completion, you would have ArrayList<String>
suggested, which is probably exactly what you wanted: an implementation of the interface type. Great! Except that frustratingly often, the default shortcut (ctrl-shift-space) simply does not work on the Mac. There are several complaints about this issue with Apple, with Google, with Google again and with Jetbrains. It appears that there is some bad interaction between Chrome, the Chinese trackpad input method (presumably for drawing characters), and the default keyboard shortcut for that method, which is ctrl-shift-space.
Not running Chrome isn’t an option for me since I am frequently doing web-facing development work, but fortunately there’s a relatively easy workaround. Apparently, OS X still captures ctrl-shift-space even when the Chinese trackpad input method is disabled. As if that wasn’t weird enough, there’s no way to disable the keyboard shortcut either, but you can change it to something that you’ll never use for anything else.
- Open System Preferences.
- Open Language & Text. Note the disabled “Keyboard Shortcuts…” button.
- Enable Chinese – Traditional. This will enable the button. If this isn’t enabled, the shortcut will not show up in the Keyboard pref pane, so you can’t edit it, even though it’s still active to a certain extent.
- Click the button. It will take you to the Keyboard Shortcuts area of the Keyboard pref pane.
- Change the “Show Hide Trackpad Hand…” shortcut to something improbable. I chose command-option-control-shift-backslash. For some reason, there’s no checkbox to disable that shortcut, even though all the other shortcuts have one. Also, if you have the default key bindings for Spotlight, you’ll see yellow shortcut conflict warnings. Don’t worry; those will go away once you disable Chinese – Traditional again.
- You can now go back to Language & Text and disable Chinese – Traditional.
Ctrl-shift-space should then work fine in IntelliJ.