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