How to: Solve the ‘Ctrl-Space (auto-complete) not working’ problem in Eclipse
This problem is known by various names such as:
- Ctrl-Space doesn't do anything in Eclipse!
- Why can't I get auto-complete to work properly in Eclipse?
- I've just set up a new University computer and things don't work like they do on my laptop (maybe that one's just me...)
It's actually very simple to solve, but the problem is actually nothing to do with Eclipse. First of all, let's see what the problem is:
You've just installed Eclipse, are starting to do some programming in it, and want to use the very handy auto-complete feature. So, you type part of a function name and press Ctrl-Space, waiting for the magic to work and the rest of the name to be automatically typed....but it doesn't happen!
In the image above (which unfortunately doesn't include the cursor) I had typed ST, and pressed Ctrl-Space to autocomplete it but nothing happened.
When trying to fix this myself, I went in to the Eclipse options (Windows->Preferences, then General->Keys) and tried to find the command for auto-complete. Helpfully, it's not called autocomplete or anything like that - it's called Content Assist. This showed me that, as I expected, Content Assist was assigned to Ctrl-Space:
So why wasn't Eclipse picking this up? I tried setting the key for Content Assist manually, but when I deleted the text in the key binding box and pressed Ctrl-Space, it showed that only Ctrl registered - somehow the spacebar press was being 'eaten up' by something else. What could it be?
The simple answer is: the Windows language services utility - obvious really! This seems to be set by default (at least some of the time) to switch between languages by using Ctrl-Space. On my personal computer I only have one language set up (English (UK)), but on the university computers there are loads - French, German, Italian, Chinese (simplified) etc. You can find out what languages you have set up by going to Control Panel -> Region and Language -> Keyboards and Languages (tab) and then Change Keyboards (again, how obvious...). You'll see a list of languages installed - remove any that you don't want (click the language and then click the Remove button) until you only have the ones you want left. That fixed it for me, but you can also check the Advanced Key Settings tab to make sure that none of the keyboard shortcuts that are set include Ctrl-Space.
Once you've done that, Ctrl-Space should work nicely