禁用iPython Notebook自动滚动

时间:2016-04-21 00:01:56

标签: python python-2.7 ipython jupyter-notebook

在iPython Notebook中,是否可以禁用长输出的自动滚动?或者至少在自动滚动设置之前设置输出长度的阈值?

尝试以下命令

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;

但是它会出错

Javascript error adding output!
SyntaxError: Unexpected identifier
See your browser Javascript console for more details.

6 个答案:

答案 0 :(得分:38)

要禁用自动滚动,请在执行其他单元格之前在笔记本单元格中执行此javascript:

%%javascript
IPython.OutputArea.prototype._should_scroll = function(lines) {
    return false;
}

还有一个ipython笔记本扩展程序disable_autoscroll,您可以使用它进行更永久的更改。请关注ipython issue #2172了解最新详情。

答案 1 :(得分:12)

也可以通过用户界面完成。

  • 单个单元格:单元格->当前输出->切换滚动
  • 所有单元格:单元格->所有输出->切换滚动

enter image description here

答案 2 :(得分:1)

以与hack a cell to autorun类似的方式,您可以添加以下单元格:

%%javascript
require(
        ["notebook/js/outputarea"],
        function (oa) {
            oa.OutputArea.auto_scroll_threshold = -1;
            console.log("Setting auto_scroll_threshold to -1");
        });

auto_scroll_threshold设置为-1,这意味着永远不会自动滚动。

这适用于我信任的笔记本电脑(例如jupyter trust notebook.ipynb),不确定是否在不受信任的笔记本中执行任何单元格。

答案 3 :(得分:1)

要在run all命令后禁用滚动到底部,请执行以下代码:

%%javascript
require("notebook/js/notebook").Notebook.prototype.scroll_to_bottom = function () {}

答案 4 :(得分:1)

要防止在单个单元格输出中滚动,请选择单元格并在命令状态下按Shift+O。它将为该特定单元格切换输出。如果希望所有单元格显示长输出而不滚动,请转到Cell tab -> All Outputs -> Toggle Scrolling。就是这样!

答案 5 :(得分:0)

这对我有用(没有分号)

=> #<ActiveRecord::AssociationRelation [#<ReservationOption id: 62, option_id: 110, reservation_id: 142, option_quantity: nil, created_at: "2019-10-25 12:27:45", updated_at: "2019-10-25 12:27:45">]>