17

在 Linux 终端中,当一个命令的输出太长而无法在一页中读取时,我可以这样做:

cat file | less

这样我就可以阅读和上下滚动 cat 文件的输出。

我怎样才能在 IPython 中做到这一点?

例如,我尝试了这个,但它没有用:

whos | less

我最初的问题是通过 Shift+Page Up 的输出whos太多了,我不想更改滚动缓冲区。

4

4 回答 4

23

在 IPython 中,您可以使用标准寻呼机(通常)%page obj来显示对象。或者,您可以增加终端的滚动缓冲区,这在任何情况下都可能很方便。objless

%page obj-- 显示对象类似于 IPython 默认显示(repr-like),如果输出大小需要,使用分页器

%page -r obj-- 显示类似于打印的对象,如果大小需要,使用分页器

%page只能采用普通名称或属性引用。它不能评估任意表达式,但您可以使用临时变量来解决此限制L

tmp = ex * pr + ess - ion
%page tmp
于 2011-04-21T07:21:17.497 回答
3

寻呼机的使用应该是自动的。

手册

要将 less 配置为默认寻呼机,请执行以下操作:

  1. 将环境 PAGER 变量设置为 less。
  2. 将环境 LESS 变量设置为 -r (以及默认情况下您总是希望传递给 less 的任何其他选项)。这告诉我们如何正确解释控制序列,这是如何将颜色信息提供给您的终端。

对于 bash shell,将以下行添加到您的 ~/.bashrc 文件中:

export PAGER=less
export LESS=-r
于 2011-04-21T11:59:33.140 回答
1

!在我的 IPython(7.21 版)上,在前缀之后,管道确实有效。

基本用法:

!cat ~/.vimrc | less

甚至可以使用 python 变量替换:

# send `some_large_python_str` to pastebin
!cat "{some_large_python_str}" | pastebin

"请注意在替换周围使用引号{...}

于 2021-08-11T23:11:36.897 回答
0

系统外壳访问

任何以 ! 开头的输入行 字符被逐字传递(当然,减去!)到底层操作系统。例如,输入 !ls 将在当前目录中运行 'ls'。

来源:http: //ipython.scipy.org/doc/rel-0.9.1/html/interactive/reference.html#id1

于 2011-04-21T07:28:45.667 回答