[Pythonmac-SIG] readline support for OS X Leopard

Noah Gift noah.gift at gmail.com
Sat Oct 27 04:01:05 CEST 2007


Ed,
You are a genius! Thanks, I totally forgot you told me that.

So for the record when you launch IPython:

import readline
readline.parse_and_bind ("bind ^I rl_complete")

Then do something like:

import os

and you will get

In [5]: os.
Display all 234 possibilities? (y or n)

Ok, what is the easiest way to get IPython to automatically do this?  This
would be great to document.

Also, (shamelessly off-topic), if anyone has GVim working...let me know,
cough, it is for Python and it is on Mac :)


On 10/26/07, emoy at apple.com <emoy at apple.com> wrote:
>
> It right there in my original message (and in the python man page).  You
> have to use EditLine syntax:
>
> readline.parse_and_bind ("bind ^I rl_complete")
>
>
> Ed
>
> On Oct 26, 2007, at 6:46 PM, Noah Gift wrote:
>
> I was just going to say the same thing.  Getting this to work and then
> GVim, and I will be quite happy.
>
> On 10/26/07, Boyd Waters < bwaters at nrao.edu> wrote:
> >
> > Oops, I spoke too soon when I said that readline support with
> > Leopard's Python works for me with IPython.
> >
> > Many things DO work, but tab-completion does NOT.
> >
> > I am trying to get tab completion working.
> >
> > Forget IPython, just try this "unit test" of rlcompleter with the
> > Python that ships with Leopard:
> >
> > See http://docs.python.org/lib/module-rlcompleter.html
> >
> >   Launch python from a Terminal shell prompt.
> >   at the prompt, type the following commands:
> >   import rlcompleter
> >   import readline
> >   readline.parse_and_bind("tab: complete")
> >
> >   Now, try it out: start some input, then hit the Tab key to get some
> > possible completions:
> >
> >   readline. <TAB PRESSED>
> >
> >   The tab is passed as raw input, and the completer does not give any
> > completions.
> >
> >   Tried with both Terminal and xterm.
> >
> >
> > Reported as Apple Bug # 5563035
> >
> > I've also asked the IPython devs for help - and volunteered to get
> > this resolved somehow for them -- but I don't think it's an IPython
> > problem (since you can do this from "raw" interactive python).
> >
> > Here's hoping...
> >
> >
> >   - boyd
> >
> >
> > Boyd Waters
> > Mac Programmer
> > National Radio Astronomy Observatory
> > http://www.aoc.nrao.edu/~bwaters
> >
> >
> > On Oct 22, 2007, at 12:35 PM, Noah Gift wrote:
> >
> > > Edward,
> > >
> > > Thanks for the information.  Do you know of a way to get IPython to
> > > use edline instead?  IPython is growing in popularity for Python
> > > programmers, and it seems like getting a way forward that works with
> > > edline makes sense, or maybe I am wrong and people will need to just
> > > manually install readline themselves.
> > >
> > > Noah
> > >
> > > On 10/22/07, Edward Moy < emoy at apple.com> wrote:
> > > On Oct 21, 2007, at 10:51 PM, Noah Gift wrote:
> > >
> > >> I have been getting ready for the official leopard release in a few
> > >> days, and have been a bit worried about readline support.  I forgot
> > >> what I did to get it to work for IPython, which I absolutely cannot
> > >> live without anymore.  Is there a plan for a Leopard binary that
> > >> fixes readline, or can I help someone prepare some documentation on
> > >> getting readline working properly.  I don't have a lot of time
> > >> during the next couple of weeks to get into compile hell, but if
> > >> someone has any easy fix to get readline to work, I would greatly
> > >> appreciate it.
> > >
> > >
> > > The installed version of python on Leopard will actually have
> > > readline support turned on by default, but it uses the EditLine
> > > (libedit) library, not the GNU Readline (due to licensing reasons).
> > > While functionally equivalent, the command syntax is different.
> > > From the python(1) man page:
> > >
> > >
> > > INTERACTIVE INPUT EDITING AND HISTORY SUBSTITUTION
> > >        The Python inteterpreter supports editing of the current
> > > input line and
> > >        history substitution, similar to facilities found in the Korn
> > > shell and
> > >        the  GNU  Bash shell.  However, rather than being implemented
> > > using the
> > >        GNU Readline library, this Python interpreter  uses  the
> > > BSD  EditLine
> > >        library editline(3) with a GNU Readline emulation layer.
> > >
> > >
> > >        The  readline  module  provides the access to the EditLine
> > > library, but
> > >        there are a few major differences compared to a traditional
> > > implementa-
> > >        tion  using  the  Readline  library.   The command language
> > > used in the
> > >        preference files is that of EditLine, as described in
> > > editrc(5) and not
> > >        that   used  by  the  Readline  library.   This  also  means
> > > that  the
> > >        parse_and_bind() routines uses EditLine commands.  And  the
> > > preference
> > >        file itself is ~/.editrc instead of ~/.inputrc.
> > >
> > >
> > >        For  example,  the rlcompleter module, which defines a
> > > completion func-
> > >        tion for the  readline  modules,  works  correctly  with
> > > the  EditLine
> > >        libraries, but needs to be initialized somewhat differently:
> > >
> > >
> > >               import rlcompleter
> > >               import readline
> > >               readline.parse_and_bind ("bind ^I rl_complete")
> > >
> > >
> > >        For vi mode, one needs:
> > >
> > >
> > >               readline.parse_and_bind ("bind -v")
> > >
> > >
> > >
> > --------------------------------------------------------------------------
> > > Edward Moy
> > > Apple Computer, Inc.
> > > emoy at apple.com
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
> > > http://mail.python.org/mailman/listinfo/pythonmac-sig
> >
> >
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythonmac-sig/attachments/20071026/0d388a23/attachment.htm 


More information about the Pythonmac-SIG mailing list