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



Giovanni Gherdovich <giovanni.gherdovich@xxxxxxxxxxxxxxx> writes:

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

I find that it does work, but unlike SLIME for lisp, it just imports the statement.

It confused me at first, but basically the interpreter doesn't provide
any feedback to emacs.

Try opening a python source file (start python-mode if you don't have
an autoload hook) and do C-c C-z to bring up the Python
interpreter. Type in a simple assignment statement (like "a = 1 + 2"
without the quotes) into the source file. Then just C-c C-c as
usual. I never get any feedback. Just C-x o to the interpreter and
print out the variable you just defined. It should be there.
.



Relevant Pages

  • Re: how do "real" python programmers work?
    ... but because I use Emacs I have an IDE: ... - multiple edit buffers for the Python code (any good editor can do ... - output shown in a new buffer, automatically jump to errors in code ... separate window is a regular shell session where I can run other ...
    (comp.lang.python)
  • Re: Anyone use ELSE minor-mode in Emacs?
    ... > with the standard emacs keys, but I don't like to change them. ... Emacs and Vim key-bindings are pretty different, ... Vim that I was in Emacs. ... Then a Python script analyses the received email and pre-sorts it in ...
    (comp.lang.python)
  • Re: anygui,anydb, any opinions?
    ... Thomas> As did many with Fortran. ... Is Python a comfortable place for the Luddites ... better set of tools -like editor displayed on a CRT hooked up to ... stumbled upon Gosling's Emacs, ...
    (comp.lang.python)
  • what I would like python.el to do (and maybe it does)
    ... python with emacs), but I would also like to share ... that there are two major emacs mode for python around: ... line but the whole buffer; the closest to my needs, ... To do so, I don't really need a major mode, I admit; ...
    (comp.lang.python)
  • Re: Interactive Python programming in ... vi [was: Tab wars revisited]
    ... >> Emacs allows me to interact with a continuously live instance of ... >> the Python interpreter. ... Steve> editors. ... feature of Emacs' is simply having input to and output from the ...
    (comp.lang.python)