On Sep 5, 2008, at 11:29 AM, Mark wrote:
> I just use regular vim with syntax highlighting. Could you guys
> please name
> some reasons of why eclipse is nice to work with, and if I can still
> use
> the 'vim' way of editing?
I can't give you a firm answer for vim. There seem to be many vi-
eclipse
integration projects, but I've never used any of them.*
Here are some of the reasons to use eclipse (or another full
featured IDE such as Wing.**)
Navigational tools. Using eclipse is a lot like using a web browser
for your code
base. One of the big things that distinguish It gives you things such
as:
Go to function definition: Hit one key, and it takes you to where a
function
is defined. This works across all files your project imports.
Move back and forth between your last edit points.
Move back and forth between the past points your cursor was
positioned at.
Browsers based on the structure of your code.
Search by regex across all files in your project.
While you type the incremental code evaluation warns you of things
such as:
Unused variables
Spelling errors
Unused imports
Un-imported modules
It can be told to turn off individual warnings on an ad-hoc basis.
Typing assistants:
Error correction:
Common errors and warnings can be fixed by pressing a single
key. For
example, it will manage your import list for you. For example,
I type the line
"StringIO.StringIO('foo')". It highlights StringIO in red. I
type cmd-1, it pops up
a list of possible fixes. The first one is 'import StringIO'.
I type return, and it
adds the line 'import StringIO' to the list of imports at the
top of the file.
Auto-completion:
It identifies which method(s) you are typing. Hitting a key
tells it to auto-complete.
It then steps you through each argument. If you name your
argument and variables
well then you can often just accept the entire statement.
Macros and boiler plate:
You can define macro expansions. Type the name inline, hit a
key, and it expands
them, giving you a chance to fill in the blanks.
SCM Integration
Awesome graphical debugger:
Remote debugging of Python programs running on different machines.
The debugger understands threads.
Integrated unit test runner. You can click on lines in the stack
trace and it opens
an editor at that point.
Refactorings such as intelligent renaming, method extraction, and
variable
inlining.
Mylyn:
Hard to describe. It allows you to associate groups of files,
classes, and
methods witch jobs. You can restrict pretty much any view to just
the files you
working on. Need to switch back to working on this mornings bug
for a bit? Just
select the job for the bug. All your current editor panes close,
and all of the editors
associated with the bug open. These jobs can be directly
associated with tickets
in your defect tracking system such as bugzilla.
Summary:
Eclipse is an environment for working on programs, and not
specifically text. If you
try to compare it on an apples-to-apples basis then it will often come
up wanting.
Text editors have lots of features for working with the contents of a
files, but they
don't understand the relationship between files, and they don't
understand the
semantics of programs. (Not the syntax, but the semantics.)
While working with one or two files text editors seem far superior,
but once
you start working on gnarly code bases with many tens of files, the
navigational
and semantically based tools within a modern IDE really start to pay
off.
Imagine renaming one method in forty places within twenty different
files, most
of which you haven't written. That's only three or four keystrokes in
eclipse/pydev.
You make the change, save the files, and then eclipse runs all your
unit tests
automatically.
-jeff
* Historically I'm mostly an emacs user, but I appreciate the
strengths and weakness
of vi, emacs, and eclipse. I'm currently jumping between all
three. Eclipse to browse
the Bugzilla source, vi to make quick change one-or-two line
changes in database
migration scripts, and emacs to make larger multi-line changes on a
non-local
headless machine.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---