@Joost_ said:
I'm sure VIM can:
- set break points
- step into, out of & over function calls
- see the local variables of a function
- inspect & modify variables
- watch variables
- view call stacks
- show the layout of a class
- help me design a form without typing that the edit box should have the bounds (8, 8, 100, 25)
- generate documentation
- allow me to not type repetitive boiler plate code
- allow me to see two files on the same screen at the same time
I've been quite happy using vim when working on unix machines but i prefer eclipse for doing java code. A couple of other areas I like are:
- autocomplete method calls
- collapse and expand methods
- select a variable, method or class and go straight to its declaration (hit F3)
- define working sets of classes you can switch between
- maintains a nice project list of your workspace
- ver3.1 eclipse you select a term and it highlights all occurences like vim, but additionally it highlights their positions on the scrollbar at the side(click it to go straight there). Lines with errors or to-dos are shown on the scrollbar background also.
- underline errors in the source view, no switch between compiler and vim
- automatically generate accessor methods
- import from cvs and work with easy class browsing, compare changed files, changes highlighted from a single point of operation
- plug-ins : metrics tools, design plug-ins (haven't seen a great free one yet though) for uml, visualisation tools, byte code viewers etc.
- recommendations for fixing problems (not usually needed but it makes things faster and easier to just click the "add unimplemented methods" option when you implement an interface in java and let it do some more of the typing for you.
- view type hierarchy and call hierarchy
- outline of methods, attributes at the side of the source, click to go to it
- customize what you actually want to see (eg. classes in the project, outline of the current class, console, compiler warnings/problems etc)
- automatically fix indentation
- organize imports, you forget to import one or two packages just click quick fix and let it import them all in one go - less typing again
- save and use various run/debug configurations
- set breakpoints as you look at the source code - click at the lines you want rather than remember them when you switch to the debugger
It makes everything available and customizable in a single environment.