eryksun added the comment:

> Why does help() enter a more-mode for even short help?  

`more` exits if there's less than a page of a text. The default for `less` is 
to quit when "q" is entered. You may be interested in the option -e 
(quit-at-eof).

> Why doesn't ENTER get you out of it?  

ENTER scrolls. Type a number N to scroll by N lines.

> Why does it clear the screen when you are done with it, 
> removing all the help from the screen?

The option -X (no-init) should stop `less` from clearing the screen.

> Why doesn't the prompt have a suggestion of how to get out of it?  

I guess no one thought to add that when `less` is used.

You can customize the pager using the PAGER environment variable, as used by 
other commands such as `man`.

    $ PAGER='less -eX' python3 -c 'help(help)'
    Help on _Helper in module site object:
    
    class _Helper(builtins.object)
    [...]

You can also set pydoc.pager directly, which is what IDLE does:

    >>> pydoc.pager = pydoc.plainpager
    >>> help(help)
    Help on _Helper in module site object:
    [...]

plainpager is the default if the TERM environment variable is dumb or emacs, or 
if sys.stdout isn't a tty. Otheriwse if the system has neither `less` nor 
`more`, the pager is set to pydoc.ttypager. 

On Windows, text is written to a temp file using tempfilepager. Other platforms 
pipe the text using pipepager. This should also work for Windows in Python 3, 
which implements os.popen with subprocess.Popen. Here's a test using GnuWin32 
head.exe and tr.exe:

    >>> cmd = 'head -n3 | tr [:lower:] [:upper:]'    
    >>> pydoc.pager = lambda t: pydoc.pipepager(t, cmd)
    >>> help(help)
    HELP ON _HELPER IN MODULE _SITEBUILTINS OBJECT:
    
    CLASS _HELPER(BUILTINS.OBJECT)

----------
nosy: +eryksun

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue21625>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to