what I would like python.el to do (and maybe it does)

Giovanni Gherdovich giovanni.gherdovich at sophia.inria.fr
Mon May 25 12:22:03 CEST 2009


Hello everybody,

basically I'm writing here since I cannot
make my python.el work (a major mode for writing
python with emacs), but I would also like to share
my user experience and tell you what I think
an emacs mode should do, why do I like them
and hopefully have some feedbacks to see if I
misunderstood/underestimate something.


== 1) my python.el doesn't behave very well ==

I learnt somewhere
http://www.emacswiki.org/emacs/PythonMode
that there are two major emacs mode for python around:
python-mode.el and python.el.
Asking my Emacs 22.3.1 about the variable load-path
issuing
'C-h v load-path RET
I see that
/usr/share/emacs/22.3/lisp/progmodes
is in that path; there I find a file named
python.elc
which I assume to be some kind of emacs lisp bytecode
since is pretty much unreadable.

So I searched the web for a plain version of it,
finding that the feature I use more, i.e.
sending a line of a text file to the
python buffer for evaluation (see below), correspond
to the key sequence

\C-c\C-c

(well, it's python-send-buffer, so maybe not a single
line but the whole buffer; the closest to my needs, anyway).
However: I open my Emacs, issue M-x python-mode,
then M-x run-python to have the interpreter in
a second buffer, I type something in the
first buffer and then C-c C-c, but nothing happens.

Am I missing something?
Do I have any hope of having some sort of
send-line-to-python-buffer function working?


== 2) How do I use emacs modes for interpreted languages ==

Please note that what follows is just the personal perspective
of an unexperienced user.

Syntax highlighting is a great thing, but is not as critical
to me as the feature I describe below.

When I work with interpreted languages, I really hate doing it
in the shell; after 20 commands I easily lose control on
what happens and on which definitions are around.

I use Emacs instead, so that I can have two buffers; in the
first I type my expressions, in the second I evaluate them
using some key bindings so that I can easily send the text
from the first buffer to the second one line by line.

In this way I can easily refactor my code, and eventually package it
in a script if I like.
Usually after a while the intepreter buffer is a big mess,
so I restart it but my code is safe and sound in the first buffer.

To do so, I don't really need a major mode, I admit; I just need
to put the following code in my .emacs:

(fset 'send-line-other-window
  [?\C-a ?\C- ?\C-e ?M-w right
   ?C-x ?o ?C-y return ?\C-x ?o])
(global-set-key [f11] 'send-line-other-window)

Then I open emacs, C-x 2 to have a second buffer,
C-x o to switch to it and M-x shell to run bash in it.
Then, in the case of python, I run "python" in the
bash buffer. Then I type my code in the first and with F11
I send lines to the interpreter.

But since i like to do it The Right Way, I would
like to let the python-mode worry about this...

Sorry if this is just a bunch of obvious thoughts to most of you.

Regards,
Giovanni




More information about the Python-list mailing list