Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I comment out multiple cells in Jupyter Ipython / JupyterLab notebook?

How can I comment out multiple cells in Jupyter Ipython / JupyterLab notebook? The code is in Python.

The keyboard shortcuts Ctrl + / on Microsoft Windows and Cmd + / on Mac OS X only work if the selected code is within one cell. However, if I select several cells, then these keyboard shortcut don't work anymore.


Selecting several cells can be done by clicking on the margin of cell, then holding CTRL or SHIFT, and clicking on the margin of another cell:

enter image description here

like image 624
Franck Dernoncourt Avatar asked Jan 15 '19 20:01

Franck Dernoncourt


People also ask

How do you comment multiple lines in Jupyter lab?

In order to comment on multiple lines at once in Jupyter Notebook, you have to select the required lines and then press the Ctrl + / . Then we select all the rows and press the Ctrl and / and voilà!

How do you comment in a Jupyter notebook?

Let it be a single line code comment or a block code comment, when we use the shortcut (e.g. Ctrl + / on windows), the # should be indented the same amount as the code line, not be placed at the start of the line.


2 Answers

As stated in the comments, you can:

a) Convert all them to markdown (select and press m)

b) Go cell by cell selecting all text (control+a) and then (control + /) to comment

c) Merge all cells in one, and then comment. Unfortunately, I don't think this option is reversible

If anyone knows another option, I'd be happy to know about it!

like image 130
Marc Torrellas Socastro Avatar answered Oct 18 '22 19:10

Marc Torrellas Socastro


There are two ways to solve the intention of having these cells treated as text:

1) in Jupyter, multi-select the cells and press m for markdown; now they will behave like markdown/text which is just as good as commenting them out. Note that this process is reversible by multi-selecting the cells and pressing y to convert the cells to code. A drawback of this approach is the formatting that will apply by default to your markdown cells. To have them appear like code but behave as text seems to require the manual intervention of wrapping each markdown cell in <pre> tags as in: <pre>print("my code")</pre>

2) If there is a need to have them treated as code but commented out, the only way to do this without going one by one (that I could find), is to merge the cells into one, but that requires trickery when you have more than two cells. Once done, the command / (or control / on Windows) will work on multiple lines.
To do this: If only two cells involved

  • multi-select the cells
  • in Jupyter menus: Edit -> Merge Cell Above (or Merge Cell Below)
  • Select the contents within the whole cell
  • now you can use control/command / (windows or mac) to comment all code out

For more than two cells - try this:

  • multi-select all cells
  • control-c or command-c (copy command)
  • paste the results into your favorite text editor
  • select all and copy the results within your text editor
  • now paste back into a single cell of your notebook
  • now select within the notebook and use control/command / (windows or mac)
  • now multi-select the rest of your cells with the original split up content
  • delete these cells leaving only your newly merged and commented out cell behind

As observed by others - this process is not easily reversible. You can uncomment all the lines of code but splitting them back into their original cells would require manual effort I think.

I tested all of this in Anaconda Jupyter using a sublime text editor for the text editor steps. Here is the version information from my system from when I did these tests:

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.
like image 26
TMWP Avatar answered Oct 18 '22 19:10

TMWP