Paging capabilities for IPython.core
For now this uses ipapi, so it can’t be in IPython.utils. If we can get rid of that dependency, we could move it there. —–
Very dumb ‘pager’ in Python, for when nothing else works.
Only moves forward, same interface as page(), except for pager_cmd and mode.
Print a string, piping through a pager after a certain length.
The screen_lines parameter specifies the number of usable lines of your terminal screen (total lines minus lines you need to reserve to show other information).
If you set screen_lines to a number <=0, page() will try to auto-determine your screen size and will only use up to (screen_size+screen_lines) for printing, paging after that. That is, if you want auto-detection but need to reserve the bottom 3 lines of the screen, use screen_lines = -3, and for auto-detection without any lines reserved simply use screen_lines = 0.
If a string won’t fit in the allowed lines, it is sent through the specified pager command. If none given, look for PAGER in the environment, and ultimately default to less.
If no system pager works, the string is sent through a ‘dumb pager’ written in python, very simplistic.
Page a file, using an optional pager command and starting line.
Return a pager command.
Makes some attempts at finding an OS-correct one.
Return the string for paging files with an offset.
This is the ‘+N’ argument which less and more (under Unix) accept.
Print a string snipping the midsection to fit in width.
print_full: mode control:
- 0: only snip long strings
- 1: send to page() directly.
- 2: snip long strings and ask for full length viewing with page()
Return 1 if snipping was necessary, 0 otherwise.