In iPython Notebook, is it possible to disable the autoscrolling of long outputs? Or at least set a threshold for the output length before autoscrolling sets in?
Tried the following command
%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;
but it gives an error
Javascript error adding output!
SyntaxError: Unexpected identifier
See your browser Javascript console for more details.
To disable auto-scrolling, execute this javascript in a notebook cell before other cells are executed:
%%javascript
IPython.OutputArea.prototype._should_scroll = function(lines) {
return false;
}
There is also an ipython notebook extension, disable_autoscroll, you can use for a more permanent change. Follow ipython issue #2172 for the latest details.
Can also be done via user interface.
- Individual cells: Cell->Current Outputs->Toggle Scrolling
- All cells: Cell->All Outputs->Toggle Scrolling
In the similar way that you can hack a cell to autorun, you can add the following cell:
%%javascript
require(
["notebook/js/outputarea"],
function (oa) {
oa.OutputArea.auto_scroll_threshold = -1;
console.log("Setting auto_scroll_threshold to -1");
});
which will set the auto_scroll_threshold
to -1
which means never autoscroll.
This works on my notebooks that are trusted (e.g. jupyter trust notebook.ipynb
), not sure if any cells are executed in untrusted notebooks.
To disable scroll to bottom after run all
command, execute this code:
%%javascript
require("notebook/js/notebook").Notebook.prototype.scroll_to_bottom = function () {}