Monday, February 18, 2008

10 Helpful Hints on Moving from Eclipse to IDEA

Eclipse is an amazing Java IDE*. It has great refactoring support, a committed community, and an unbeatable price. And two years ago I switched to IntelliJ IDEA. Why is not important**. Which is better is not important***. The goal of this post is to make the transition as easy as possible.

Here are my top ten ways to make the transition easy:

1. Learn to use Ctrl+J
Ctrl+J brings up the Live Template options based on where your cursor is. If you're in Javadoc then there will be some Javadoc intentions, if you have code highlighted then there will be some surround intentions. I wrote my own intention that creates a failing unit test. Seriously... quit typing. You'll get carpal tunnel. Use the intentions instead. The collection iteration intentions are some of the most useful!

2. Install the KeyPromoter Plugin
This plugin pops up a big reminder window every time you perform a mouse action that has a key binding associated with it. It's a great learning tool for the new keyboard shortcuts. Also, if you perform an action 3 times which doesn't have a key binding, then it prompts you to create one. People who use the mouse always underestimate how much time learning the keyboard shortcuts would save them. But remember: like me, you may want to adjust the plugin settings to be less intrusive.

3. Learn to use Ctrl+Alt+T
Highlighting code and pressing Ctrl+Alt+T will bring up the "Surround With" menu.
You can quickly surround the code with an if, for, try/catch, Runnable, Synchronized... The list goes on infinitely. Or at least until you can count to 11, whichever comes first. I use this all the time.

4. Print and Use the Keymap
JetBrains provides a nice overview of all the important keyboard shortcuts on one page. Print this out, cut it into 3 strips, and tape it to the sides of your monitor. Seriously. This is exactly what call centers do in order to speed up their phone operators. It looked goofy but helped me a ton.

5. Increase Your Heap Size
IDEA critics (rightly, in my experience) complain that it is slower than Eclipse. Well, your first step should be to increase the heap size. Locate your idea.exe.vmoptions file and open it with a text editer (IDEA works fine). My file is in C:\Program Files\JetBrains\IntelliJ IDEA 7.0.2\bin. Change the -Xmx line to allow a bigger heap. Mine is set at -Xmx512m.

6. Don't Use the "Eclipse Keyboard Layout" Settings
This is an impossible statement to quantify, but: the IDEA keyboard bindings are simply better than the Eclipse bindings. 9 out of 9 of my coworkers agree with this statement. Hey, it's now an empirical statement! Just try it, I swear you'll like it better.

7. Learn to use Find Effectively
Do you know the difference between Find, Find Usages, Highlight Usages in File, and Find in Path? There are 13 entries on the Search menu of IDEA, and every entry has a purpose. Learning the differences has been a huge time saver for me, and only using the one you're most familiar with will cost you a lot of time.

8. Learn to use Ctrl+Shift+A
Pressing Ctrl+Shift+A brings up a search dialog for actions... whether they be hidden in the menu, toolbar, or just plain hidden!You really don't ever need the menus. Just type Ctrl+Shift+A and see where the wildcard matching can take you!

9. Performance Issues? Stay Bleeding Edge
At first I wasn't happy with the performance of IDEA 7 on my HUGE Java codebase at work. But every minor release has had a marked improvement on performance. 7.0.2 is currently the most recent GA release. Install it if you're on an earlier version. 7.0.3 is coming soon, and is probably out by the time you read this.

10. Read the Book
I crammed on IDEA in Action for about 4 hours before making the switch, and it helped immeasurably. It's not a great reference or a great how-to. But it does inform you of what is possible. I'll remember that the book explained how to do something, even if I can't remember the steps. Skimming this book will move you from thinking, "I wish IDEA had feature x from Eclipse" to "I know IDEA can do this I just need to figure out how." It's on my bookshelf. Just stop by and borrow it.

I have more, but 10 tips was my limit! Now please, please, PLEASE let me know what helped you make the conversion... I'd love to hear you comments.

* Yes, yes, I know. It is a platform, not an IDE. FlexBuilder blew my mind and proves the point.
** Corporate Policy
*** IDEA


Guillaume Laforge said...

Thanks a lot for these tips! I've been a long time IDEA user, but you've just made me discover tip #8, to search for actions. Excellent.

fijimf said...

Ctrl-X and Ctrl-V act on the whole current line if nothing is selected.

Tremendous. Always miss it in Eclipse.

Howard said...

There is so much in IDEA it's hard to use it all.

On Mac OS X: you pay a hefty performance price for the "native" look and feel, switch it to something else.

Hamlet D'Arcy said...

I almost included a performance tip as #11... in IDEA 7.0.2 on Windows, I seem to pay a heavy performance price for the Project View (Alt+1), especially with autoscrolling to and from source enabled. My alternative is to use the Structure View (Alt+2) as my default sidebar and rely on the Navigation Bar (View->Navigation Bar) for project navigation. I find I actually prefer this setup and 7.0.2 performs noticeably faster.

And while you're futzing with the sidebar, you might as well change the anchor on all the collapsed sidebars from the right of your screen to the left (or vice versa). Having all the collapsed panes on one side of the IDEA will give you a few dozen extra pixels that are otherwise lost to a vertical toolbar/panel. Now that's a productivity tip!!!

Carl said...

To help get a bit more startup performance, you should disable all of the plugins you are not currently using. If you aren't using Geronimo, the Commander or the Jabber interface, for example, turn them off.

Thibaut said...

The features that I use probably most are
- the multiple "go to" actions, which enable very quick navigation between artifacts (classes, files, symbols)
- the "extend selection" (Ctrl-W) which allows very quick selections

Anonymous said...

Great post! I recently started using IDEA and will definitely use your hints.

Loc Nguyen said...

Much appreciated. I just switched to IntelliJ a few weeks ago and I wish I knew this from the very beginning. Hope you can share more of your knowledge in future blogs. It's easier learning from a short blog post compared to reading an entire book.

Tyler said...
This comment has been removed by the author.
Tyler said...

As a long time (v2.5) IDEA user I enjoyed this post, having never used Ctrl+Shift+A. If you're using Windows you may see a *noticeable* performance improvement by switching your L&F to "IDEA (4.5 default)", assuming you can live with the blocky look. Also, turn off the "Synchronize files" option in the general tab - will require you to Ctrl+Alt+Y to manually sync files.

言承旭Jerry said...
This comment has been removed by a blog administrator.