I’m a huge advocate of no mouse. The mouse is extremely slow and cuts my productivity by large amounts. I’m also a heavy IDE user and therefore my IDE has to allow me to get as much work done without the mouse as possible. I’ll be comparing IntelliJ and Eclipse right now and when I get free time I’ll go back in and add NetBeans.
NOTE: This is NOT a comparison of features/plugins/downloads at all. I refuse to get caught up in the mess of IDE features/plugins/downloads at all.
Let’s get started:
There are a handfull of commonly used text editing commands that will help not have to use the mouse.
- Jump over words (camel case is a plus)
- Select words
- Delete words
- Jump to next method
- Jump to next error
- Select line
- Copy, cut, paste line
- Delete line without putting it on the clipboard
- Multiple clipboards and pasting support for them
- Select page-up and page-down
- Contextualize newlines (if you are in a comment and hit enter it ensures correct comment formatting)
How do the IDEs stack up for editing?
Supports: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11
Eclipse’s support for 1 doesn’t support camel case in other languages unless those editors support it. It also doesn’t treat certain characters like single quote as words, which is slightly annoying because it forces you to hit the arrow key without ctrl a few extra times to select a String constant.
Eclipse’s support for 4 only works with Java code and other languages that have added this feature.
Eclipse doesn’t appear to support multiple clipboards from what I could tell.
Eclipse’s support for 10 is strange. When you hit page-down it sometimes scrolls so that the selected region is completely off the screen making it difficult to visually determine if you have selected anything.
Eclipse’s support for 11 is broken if the Java file you are working it has compile errors.
Supports: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
IntelliJ supports all of these features but has very little support for other languages.
IntelliJ’s support to 10 is nice because it leaves a single line of selection at the top of the page that let’s you know you have selected something.
Here are the main search and replace tasks:
- Find in file
- Incremental find in file
- Replace in file
- Replace all in file
- Find in project
- Find in workspace
- Replace in project
- Replace in workspace
- Full regex
- Highlight code element in file
- Find usages in project
- Find usages in workspace
Eclipse supports 1, 2, 3, 4, 6, 8, 9, 10, 12
The way eclipse does 2 is really annoying because there is only a single visual change when you enter incremental search mode and that is in the status bar on the bottom of the screen. Then as you type your characters appear in this location as well. This is pretty cumbersome to use.
I also couldn’t figure out how to make Eclipse locate things in just the current project. I’d assume it is there, but I didn’t go digging. Highlighting in the current file is simple because if the cursor is on something, that word is highlighted in the file. Pretty slick. A little annoying, but not bad. I also think ctrl-shift-u works, but there are three options ‘identifier, throwing exception, implementing methods’ which I haven’t figured out.
IntelliJ supports all of these with the keyboard. Everything requires a keystroke, unlike Eclipse’s auto-highlight. Not sure if that is a good or bad thing yet.
Navigation in code
Here are the main quick features that allow you to jump around code quickly.
- Next open file (tab order because last viewed order is covered via the back command below)
- Previous open file (tab order)
- Goto method
- Goto method implementation
- Goto class
- Goto parent class
- List and goto implementations of interface
- List and goto implementations of method
Eclipse supports 3, 4, 5, 7, not 1,2, 10, 6
IntelliJ supports all of these with simple keystrokes. IntelliJ doesn’t support moving between editors in a most recently viewed order.