Emacs? VIM!
Peter Milliken
peter.milliken at gtech.com
Wed Aug 8 17:54:47 EDT 2001
Since you are trolling for what Emacs can do for Python programming - what
about language sensitive editting (LSE) support? aka templates. Emacs has
several packages that ease the generation of writing code - writing code,
when you come right down to it look very similar to filling in a form, the
biggest difference is that eash line in a code file provides a selection of
a different "form" to fill in e.g. the following class structure and if
statement are both "forms" where the user fills in the variable names etc in
the "fields" delineated by {} or []'s - some of these are further menus that
allow selection of yet other "forms"
class {classname} [inheritance] :
[init_def]
[class_funcdef]...
if {expression}:
{statement}...
[elif_part]...
[else_part]
Why force wear and tear on those fingers continually typing in character
sequences such as "if", "class", "def", ":" etc etc when you can get the
editor to do it for you? You can also achieve code "abbreviations" with
these same packages i.e.
if<some-function-key> expands to:
if {expression}:
{statement}...
[elif_part]...
[else_part]
navigation between the "placeholders" (strings enclosed by {}'s or []'s) are
simple commands. Once with these constructs then just start typing, the
Emacs packages deletes the placeholder text and replaces it with your
automatically i.e.if you typed "age == 10" when the cursor was within the
"{expression}" placeholder of the above if statement then Emacs would give
you this:
if age == 10:
{statement}...
[elif_part]...
[else_part]
Emacs comes bundled with two such facilities - skeleton and tempo. A further
LSE is one that I have authored and upon which the above examples are based.
This one is called ELSE (Emacs Language Sensitive Editor :-)). All of these
packages are "independent" of the language being generated, all you have to
do is find a set of templates for *your* language. Of course, the various
packages are differ in their ease of use, many major mode maintainers use
skeleton.el (that way when a user downloads their major mode then they don't
have to bundle any other package). Skeleton and tempo are (in my opinion
:-)) harder to use because when you generate a construct they force you
through a question/asnwer session in the mini-buffer before they generate
the desired code - ELSE generates the code much more simply (as shown above)
and provides the advantages of "persistence" across edit session which the
others don't i.e. generate a code template with skeleton and you have to
fill it *all* in *now* wherease ELSE leaves the placeholder strings in the
buffer - you can "fill them in" any time you like :-).
ELSE comes with templates for Python. I am not aware of any templates for
Python using skeleton or tempo, although they are not terribly hard to
generate.
To give you a further flavour for ELSE and some Python templates, have a
look at http://members.nbci.com/pmilliken/ - Note that the Python templates
shown here are a very, very early version and don't conform to some of the
Python coding conventions. I am currently moving sites, so what you find
here is somewhat out of date. If anyone is interested in pursuing past this
point then just send an email and I will send the latest version of
else-mode.el and the Python templates.
Regards,
Peter
"Adam 'Vonlia' Seyfarth" <adam.seyfarth at home.com> wrote in message
news:Pine.LNX.4.33.0108081041000.2138-100000 at cc489744-a...
>
> On Wed, 8 Aug 2001, Erik Max Francis wrote:
>
> > Adam 'Vonlia' Seyfarth wrote:
> >
> > > You Emacs users, you've been boasting about "X/Emacs's Python
> > > mode". First of all, you said you didn't like Vi because it was
> > > modal.
> > > Secondly, Vim has a Python environment. Ie, with vim you can get
> > > syntax
> > > highlighting for Python, and automatic indenting for Python. What
> > > more
> > > could you want?
> >
> > So use it if you like it. No one's forcing you.
>
> Yes, I know, (I am) but I thought python.org could provide links to (or
> at least tell about) all (or "most") of the editors that have a Python
> environment. This would benifet people, like me, who thought for a
> second that I would have to give up Vi for Emacs just to edit Python
> code, following the indenting standards (depressing). Does anybody know
> of another editor that has Python stuff (or a file that enables Python
> stuff)? I think I heard that Zeus does...
>
> (note: I had another reason for sending the last one, I wanted to know
> what else Emacs in Python mode could do.)
>
>
> --
> Whenever a computer is booted into Windoze - a penguin dies of a
> broken heart.
> -- Steve Baker
>
> /|| Adam Seyfarth <http://members.home.net/adam.seyfarth/> ||\
> /«|| <mailto:cloud at users.sf.net> <http://www.majik3d.org> ||»\
> \«|| <http://tuxaqfh.sf.net> <http://tuxkart.sf.net> ||»/
> \|| <http://vim.sf.net> <http://www.majik3d.org> ||/
>
More information about the Python-list
mailing list