Robin Dunn wrote:
I've been an Emacs user for more than two decades,
>... I would like to dump it for something else, iff the RIGHT something else
came along.

I'm in exactly the same situation!

My must-have list is almost entirely a subset of Robins, but a few additional comments:

> it is not
just the emacs-style key-bindings that keep me using Emacs

My too -- in fact, I don't like, or want to keep using Emacs bindings -- I want the common stuff to match modern standards, and all the other apps I use (ctrl+[X,C,V] for cut, copy, paste, for instance).

* Python should be just one of the languages that this editor supports,

key, key key! I spend most of my computing life in a text editor, but only some of it in Python. I think it's critical that this be the intent from the beginning of the design process.

Key to this is that (X)Emacs has a very high quality mode for almost everything you an imagine. IN fact, it's got the best Python mode I"ve seen in an editor (and the best LaTeX one, and...). Expecting the editor developers to make all those modes (and make them well) is out of the question (indeed, one major beef I have with BBEdit on the Mac is that you can't make your own mode. They have a Python mode, but it just doesn't handle indentation right -- there was a discussion with the developers a few years back, and short version of the response was: "you shouldn't want it to work that way". I don't think any of the developers are Python users -- so how they heck would they know? -- but I digress) You don't need to write the modes, just have the infrastructure so that they can be (easily) written.

So how is this done? it goes a bit beyond plug-ins and lexers. Emacs uses the the concept of Major and Minor modes. Major modes are things like Python mode, Plain Text Mode, LaTeX mode, etc. Minor modes are things like Fill-Paragraph, Word Wrap, etc. Another piece of this is the key bindings standards -- bindings peculiar to Modes are all proceeded with a ctrl+C -- that way different modes don't stomp on the core bindings or each-other. There are also a standardized set for the common uses: "Comment Text", "Compile", etc.

I'm not sure about the multi-key bindings thing -- but it does have some nice use in Emacs.

* One key feature that Emacs Does Not have (or I haven't found it) is a good soft wrap for text -- that is, it wraps in screen, but doesn't insert and line endings.

* Incremental search, both forward and reverse,

Easily done with very few keystrokes! Emacs has ctrl+s, then you start typing what you want to search for. If you hit ctrl+s again, you get the last thing you searched for.

* Multiple top level windows, and able to show any buffer in any TLW, including those that are already displayed in another TLW.

Yes, Yes, Yes!!!! Multiple views of the same buffer is very useful.

* Able to have selections be either a stream of characters or a rectangle.

another key feature, though I'm not thrilled with how Emacs does it -- at least not visually -- there isn't a rectangular selection that you can see. -- I also haven't found "copy rectangle", only "cut rectangle", but that's probably my lack of effort.

* Similarly, avoid using popup dialogs whenever possible. This includes things like the file dialog.

yes, yes, yes -- the Emacs standard is that if use a toolbar button or menu to ask to open a file -- you get a dialog. If you use the keyboard, you get a mini-buffer.

* Oh, and about opening files -- the file open (and save as) should always default to the same dir that the file you are currently working in is in-- that has a very high probability of being near where you want to open or save something.

I don't mind seeing the file dialog if I select a menu item,

If the file dialog is completely keyboard controllable -- that's not too bad.

All editor commands should be named and can be bound to keys by name or executed by name in this way.

This is key -- an extra level between UI action and actual command -- it makes for better command line use, customization of key bindings, macro writing, etc.

Along these lines -- the "tab" key should be able to be bound to "Indent this line properly", rather than "put a tab here", even if "put a tab here" is defined to use 4 spaces, or whatever. And hitting the delete key at the end of an indentation should mean "remove one level of indentation", not "delete a space".

* If it is a full IDE it would be nice to have a way to start just the code editor portion for quick edits.

yup -- an IDE should have a "just edit files" mode. For example, as far as I can tell, you can't do that at all with Eclipse!

* Brace matching -- not as key for Python, but critical for other languages.

* Platform independent -- I work regularly in Windows, Linux and OS-X -- one major productivity sap is that I don't have the same editor on all three (yes, I know I can run (X) emacs on all three, but it just doesn't "feel" right on Windows or OS-X)


Dusty Phillips wrote:
To this list: Which of the current Python editors would you say
supports the most of these features already? What about among the
current wxPython editors?

None close enough for me to get far using them -- the multiple top-level frames is a must-have for me. Peppy is looking great, but isn't quite been ready for prime time yet.







--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

[EMAIL PROTECTED]

Reply via email to