【问题标题】:How can I comment out multiple cells in Jupyter Ipython / JupyterLab notebook?如何在 Jupyter Ipython / JupyterLab 笔记本中注释掉多个单元格?
【发布时间】:2019-06-09 22:03:12
【问题描述】:

如何在 Jupyter Ipython / JupyterLab 笔记本中注释掉多个单元格?代码在 Python 中。

Microsoft Windows 上的键盘快捷键 Ctrl + / 和 Mac OS X 上的 Cmd + / 仅适用如果所选代码在一个单元格内。但是,如果我选择了多个单元格,那么这些键盘快捷键将不再起作用。


可以通过单击单元格的边缘,然后按住CTRLSHIFT,然后单击另一个单元格的边缘来选择多个单元格:

【问题讨论】:

标签: python jupyter-notebook jupyter-lab comments


【解决方案1】:

有两种方法可以解决将这些单元格视为文本的意图:

1) 在 Jupyter 中,多选单元格并按m 进行降价;现在它们的行为就像降价/文本一样,就像注释掉它们一样好。请注意,通过多选单元格并按y 将单元格转换为代码,此过程是可逆的。这种方法的一个缺点是默认情况下将应用于降价单元格的格式。要让它们看起来像代码但表现得像文本,似乎需要手动干预将每个降价单元格包装在 <pre> 标签中,如:<pre>print("my code")</pre>

2)如果需要将它们视为代码但被注释掉,唯一的方法是不逐一进行(我能找到),将单元格合并为一个,但这需要技巧当你有两个以上的细胞时。完成后,命令 /(或在 Windows 上控制 /)将在多行上运行。
要做到这一点:如果只涉及两个单元格

  • 多选单元格
  • 在 Jupyter 菜单中:编辑 -> 合并上方单元格(或合并下方单元格)
  • 选择整个单元格内的内容
  • 现在您可以使用控制/命令/(windows 或 mac)将所有代码注释掉

对于两个以上的单元格 - 试试这个:

  • 多选所有单元格
  • control-c 或 command-c(复制命令)
  • 将结果粘贴到您喜欢的文本编辑器中
  • 全选并在文本编辑器中复制结果
  • 现在粘贴回笔记本的单个单元格中
  • 现在在笔记本中选择并使用控制/命令/(windows 或 mac)
  • 现在使用原始拆分内容多选其余单元格
  • 删除这些单元格,只留下新合并和注释掉的单元格

正如其他人所观察到的 - 这个过程不容易逆转。您可以取消注释所有代码行,但我认为将它们拆分回原始单元格需要手动操作。

我在 Anaconda Jupyter 中使用 sublime 文本编辑器在文本编辑器步骤中测试了所有这些。以下是我进行这些测试时系统中的版本信息:

The version of the notebook server is 5.0.0 and is running on:
Kernel Info:
Python 3.6.1 |Anaconda custom (x86_64)| (default, May 11 2017, 13:04:09) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.

【讨论】:

  • 这方面有更新吗?移动单击多个单元格,点击 ctrl + / 并继续前进会非常好。
  • 我不知道有任何更新,但如果有其他人知道,请将其添加到 cmets。
【解决方案2】:

如 cmets 所述,您可以:

a) 将它们全部转换为 markdown(选择并按 m)

b) 逐个单元格选择所有文本 (control+a) 然后 (control + /) 进行评论

c) 将所有单元格合并为一个,然后进行注释。不幸的是,我不认为这个选项是可逆的

如果有人知道另一种选择,我很乐意知道!

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 2013-04-28
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多