【问题标题】:Is there a way to convient fold/unfold an ipython cell?有没有办法让折叠/展开 ipython 单元格?
【发布时间】:2014-01-29 15:41:35
【问题描述】:

现在 ipython notebook 可以通过双击输出的左边距轻松隐藏单元格的输出部分。但我还没有找到隐藏整个单元格内容的方法。

【问题讨论】:

  • 不,如果你想讨论它,你可以私下联系我或其他IPython核心开发。

标签: ipython-notebook


【解决方案1】:

是的! :) 现在有一个! :)

jupyter notebook extensions 是扩展的集合,包括但不限于:

  • 代码折叠
  • 可折叠标题
  • 还有很多很多...

第二个可用于折叠页眉上的 jupyter notebooks, 从而一次隐藏整个单元格部分。我刚发现这个,目前(可能在接下来的一个小时左右)认为这是最酷的发明,仅次于切片面包。

您甚至可以使用单个 anaconda 命令安装整个系统,

conda install -c conda-forge jupyter_nbextensions_configurator

这会安装 extensions configurator 将它们集成到 jupyter 并允许您通过单击随意启用/禁用它们。

此外,最新的 jupyter 中应该提供以下功能:三次单击完全隐藏输出 如果您在命令模式下按“o”,也会发生同样的情况:它隐藏焦点单元格的输出。

我尝试过的 jupyter 是:

【讨论】:

    【解决方案2】:

    如果您正在运行 juptyter,那么这是相关的:collapse cell in jupyter notebook

    就我而言,我喜欢 hide_cost 扩展。安装为

    pip3 install hide_code
    

    访问 https://github.com/kirbs-/hide_code/ 了解有关此扩展程序的更多信息。

    【讨论】:

      【解决方案3】:

      我花了很长时间试图让代码折叠扩展程序与我的设置一起工作,但我无法让它工作,即使在尝试了包括this * suggestion 在内的许多事情之后。我可能更喜欢这样。但是,我确实找到了这个关于隐藏代码单元的页面:

      http://blog.nextgenetics.net/?e=99

      我最终将这个 sn-p 放在了我的 custom.js 中,并且效果很好:

      http://pastebin.com/H77xP2vN

      现在在我的“查看”菜单下,我有第三个选项可以“切换代码单元格”。它切换为仅隐藏/显示输入,同时始终显示输出,这正是我正在寻找的。保存/重新打开文件时不会保留切换状态,就像使用代码折叠时那样

      【讨论】:

        【解决方案4】:

        我安装了 runtools,它对我有用。您可以折叠一个或所有标记的输入单元格。

        https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/usability/runtools

        【讨论】:

        【解决方案5】:

        hide_input_all 扩展将隐藏所有输入单元格。而hide_input 将隐藏当前具有焦点的代码单元格。我的测试表明,您需要做的就是加载 hide_input 扩展。

        IPython.load_extensions('usability/hide_input/main');
        

        【讨论】:

        • 第二个链接似乎已损坏,但其中的第一个链接和扩展名效果很好!
        【解决方案6】:

        我用 jquery 做到了。

        1. 您需要“打印预览”您的笔记本。
        2. 从浏览器控制台: jQuery(".input").hide()

        【讨论】:

          【解决方案7】:

          不确定这是否仍然相关,但以下代码折叠扩展可能会有所帮助:

          https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Codefolding

          【讨论】:

          • 这用于折叠单元格内的代码。我相信原发帖人问的是如何折叠整个 iPython 单元格。