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 -- http://mail.python.org/mailman/listinfo/python-list