Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion readline trick needed
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Etienne Robillard  
View profile  
 More options Oct 13 2012, 9:43 am
Newsgroups: comp.lang.python
From: Etienne Robillard <animelo...@gmail.com>
Date: Sat, 13 Oct 2012 09:44:04 -0400
Local: Sat, Oct 13 2012 9:44 am
Subject: Re: readline trick needed
On 13 Oct 2012 13:30:14 GMT

Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote:
> I'm working with the readline module, and I'm trying to set a key
> combination to process the current command line by calling a known
> function, *and* enter the command line.

> Something along the lines of:

> * execute function spam() in some context where it can access
>   the current command line as a string
> * enter the command line

> Function spam() may or may not modify the command line.

> Here is what I have got so far: I can discard the current line and call a
> function:

> readline.parse_and_bind(r'"\C-p": "%cspam()\n"' % 0x15)  # ^U

> binds ctrl-P to the key combinations `ctrl-U spam() Enter`, which clears
> the command line before entering spam().

> If I leave out the ctrl-U, I'll get a SyntaxError or other exception,
> e.g. command line `x = 123` gets transformed into `x = 123spam()`.

> This is not suitable:

> readline.parse_and_bind(r'"\C-p": "; spam()\n"')

> because it changes the command line. It's okay for spam() itself to
> modify the command line, but the key binding should not.

> I tried to do this:

> readline.parse_and_bind(r'"\C-p": "\nspam()\n"')

> but it gives me a segmentation fault, which is a little less helpful than
> I had expected.

> This Stackoverflow question suggests that what I want is not possible in
> vanilla Python:

> http://stackoverflow.com/questions/11680356

> but I'm a stubborn guy and I have not given up yet. Any suggestions?

> (P.S. I'm aware of IPython, I want to get this working in the standard
> CPython interpreter.)

> --
> Steven
> --
> http://mail.python.org/mailman/listinfo/python-list

Why dont you grow yourself some usable neurons instead ? Don't you realize now stackoverflow.com is starting
to hurt your capacity to cogitate on your own or have you not realized this yet?

Cheers,

Etienne

--
Etienne Robillard
Green Tea Hackers Club
Fine Software Carpentry For The Rest Of Us!
http://gthc.org/
e...@gthcfoundation.org


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.