Ian Bicking: the old part of his blog

Other editors comment 000

I also use jEdit; it has a Jython plugin so you can script it with Jython. There's also a JPyDbg plugin that gives you remote Python source debugging from inside of jEdit. Its Python mode indents when you hit enter after a colon, and it's fairly easy to configure sensible tab processing. The hypersearch and project searches are useful, as is rectangular selection and editing.

Dunno if I'd compare it to Emacs exactly; for me it's better as I'd rather not have to spend so much time programming the editor to do useful things. :) But then, I haven't used Emacs in a long, long time. I've only ever written two jEdit macros; one to automatically strip trailing whitespace from the current line whenever I hit enter, and one to insert blank lines until the current line's line number modulo 41 is 1. (Don't ask.) Anyway, everything else I've needed has already been there, or easy enough to do by hand.

Comment on Re: Other Editors?
by Phillip J. Eby

Comments:

For the record, regarding indenting, Emacs understands expressions and block terminators in addition to colon. So this is Emacs indenting:

def munge(x, y, z,
          kwarg=None):
    return {
        'x': x,
        'y': y,
        'rest': (z, kwarg),
        }

Emacs will indent the lines to exactly the position I show up there, and after the last line it won't indent at all (since the def is closed by the return). Sometimes -- not often -- it gets it wrong. Other times -- not often -- I don't like how it wants to indent my source. In those cases it can be a little annoying, but mostly because I depend on it so much that it's hard to resist using it. Emacs python-mode also has block indent and block dedent; in comparison to the automatic indenting this isn't a very sophisticated feature, but definitely something you want to have for Python.

(Is that line number modulo 41 the reason you have [what seems to me] strange chunks of verticle whitespace in your source?)

# Ian Bicking

I could be wrong, but I believe the only other editor to come close to Emac's python mode indenting is Vim. Here's what vim looks like for your sample without any fixups:

def munge(x, y, z,
        kwarg=None):
    return {
'x': x,
'y': y,
'rest': (z, keyarg),
}

and with fixups along the way (commented)

def munge(x, y, z,
          kwarg=None):      #space kwarg over 2
    return {
        'x': x,
        'y': y,
        'rest': (z, kwarg),
        }                   # left 2, tab 1

I suspect this could be fixed, but its low on my priority list. Favorite vim feature: tags support - between this and other doc / code lookup features I spend a lot less time clicking about other modules and packages, particularly those I rarely use.

Have used jedit extensively; eric3 as well - found the ubiquity of vim and the extensibility of gvim just too hard to live without. That said, I'm sure a blew a month getting vim configured how I like it and getting used to a modal editor. If its not a long term commitment its not worth going down the vim road I fear.

# Mike Watkins

I'm not sure what python.vim indent plugin you're using, but the updated one from vim.org should produce the following:

def munge(x, y, z,
          kwarg=None):
    return {
        'x':x,
        'y':y,
        'rest': (z, keyarg),
    }

and drops the cursor to the 1st column after the last }. This almost exactly the same as Emacs.

# Keir Mierle

Dunno if jEdit is being actively developed. I know Slava (the primary developer) has moved on. I haven't seen a release in a long time. Does anyone know the status? Has someone taken over development?

# anonymous

I don't think anyone's taken over development. It was sad, but I've moved back to using emacs after using jedit for ~4 years. Here are some pro/cons that I re-discovered, for out-of-the-box experience (I realize you can "do anything" if you code enough elisp, but that's not what I'm talking about).

jedit pros: 1. GUI is nicer/exists - fonts, dialogs, etc. 2. (Simple) configuration is nicer. 3. Has more editing features readily available (I hesitated to include this, given that I'm comparing against emacs, but I did find that I discovered useful features more easily by browsing the jedit config/docs than with emacs through apropos/texinfo)

emacs pros: 1. Editing modes are more polished - python, and especially auctex. 2. Remote/console use. 3. Less memory intensive.

A con for both is still occasional unresponsiveness. The reason that I left emacs to begin with was that at the time I still read my mail through emacs, and the fact that emacs was single-threaded meant that whenever I did something "intensive", e.g. open a large mail folder, my entire emacs would stall. I felt like I needed to move away from the emacs- is-my-OS workflow. Now that I've come back to emacs and use it soley as my editor, it's not nearly as bad (and computers have gotten faster in the meantime too :-), but I still find the occasional inability to edit another buffer while emacs does its thing annoying. On the other hand, jedit, being a java app, seems to want a ridiculous amount of memory, and hence I encountered random hiccups from (I'm guessing) gc.

Anyways, I think the main advantages and disadvantages of emacs stems from its age - it has a lot of nifty polished packages, but its base architecture AFAICT isn't really conducive to threading (or whatever other technology you want to use to enable snappy multi-task/buffer work environments).

# anonymous

JEdit is incredibly actively developed. I would definitely recommend it or else Eclipse (pydev). Especially the pre-release version of JEdit has much improved syntax rules, like auto-unindenting for ruby, etc. There are many plugins for things like project support, code completion, console access, etc. One plugin I can't live without is the buffertabs one. Set the tabs to show open files on top, and it's similar to a lot of IDEs. Also, set the gutter preference to show line numbers.

# anonymous

Sorry, you're right, Slava did abandon the project. This happened recently, I wasn't aware of it. Sounded too unbelievable! But he has his own programming language now apparently.

# anonymous

A new beta release of jEdit happene in Jan 1, 2006. That is something to chear about.

# Sridhar Ratna