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 <[email protected]>
<http://bugs.python.org/issue21625>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com