如何在ipython笔记本中启用换行

dr3*_*311 17 python ipython ipython-notebook

我一直在尝试在ipython笔记本中启用换行.我用Google搜索没有结果,我在终端输入了ipython notebook --help.这为配置文件提供了大量配置命令,但没有换行.有谁知道ipnotebook是否具有此功能,如果有,如何启用它?非常感谢您的帮助.谢谢.

Jak*_*kob 11

正如@Matt指出的那样,您必须配置CodeMirror以启用包装.

但是,只需在以下行中添加以下行即可实现custom.js:

 IPython.Cell.options_default.cm_config.lineWrapping = true;
Run Code Online (Sandbox Code Playgroud)

因此无需循环遍历所有单元格.以类似的方式,您可以启用行号,设置缩进深度等(请参阅@Matt发布的链接以了解其他选项).你的位置custom.js取决于你的操作系统(在我的Ubuntu机器上~/.ipython/profile_default/static/custom).

更新:

在IPython 3中,普通调用不再起作用,因此需要将该设置放在适当的事件处理程序中.可能的解决方案可能如下所示:

define([
    'base/js/namespace',
    'base/js/events'
    ],
    function(IPython, events) {
        events.on("app_initialized.NotebookApp",
            function () {
                IPython.Cell.options_default.cm_config.lineWrapping = true;
            }
        );
    }
);
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 1

大多数笔记本电脑都由 CodeMirror 提供支持,因此您搜索的选项就是这个问题,因为我们没有将配置传递给 CodeMirror 的简单方法,因此您必须找出一些 JavaScript 来custom.js将配置应用到正确的对象。

从我的头顶和挥手:我会说IPython.CodeCell.default_options.cmleslineWrapping为 true,然后循环IPython.notebook.get_cells()(已经实例化的对象)获取它们的editor属性和setOption('lineWrapping',true)

您可以创建一个 JS 扩展来执行此操作并在此处提出建议(并获取灵感) 。