[IPython-user] Erroneous Pager behavior under Windows XP
TP
wingusr@gmail....
Tue Feb 23 05:23:58 CST 2010
http://ipython.scipy.org/doc/manual/html/config/old.html#object-details-types-docstrings-source-code-etc
says:
If you are on a system which lacks proper data pagers (such as
Windows), IPython will use a very limited builtin pager.
This very limited pager for Windows XP doesn't seem to be able to
display previous pages among other things.
Following the instructions just above that statement, I decided to try
defining these environment variables to use the cygwin version of
"less" (where c:/cygwin/bin/ is in my PATH):
PAGER=less
LESS=-r
This seems to work. "?" now pages thru the basic IPython help info (at
least I can go back to previously displayed pages).
However, the %page magic doesn't correctly calculate the length of
paged output. For example:
In [14]: lst=dir(__IP)
In [15]: page lst
doesn't show the very long list lst via the pager?
The reason is the following line of code from the page() method in
genutils.py:
str_lines = strng.split(os.linesep)[start:]
It turns out that some upstream commands that call page() don't join
their lines with os.linesep ("\r\n" on Windows), but rather just use
"\n". So one possible fix is:
if strng.count("\n") > strng.count(os.linesep):
str_lines = strng.split("\n")[start:]
else:
str_lines = strng.split(os.linesep)[start:]
More information about the IPython-user
mailing list