Why are some variables and comments in my IPython notebook red?

Question:

Is this a syntax highlighting issue in my iPython notebook? Can I remove it? This happens in some of my cells, but not others.

ipython red text

I’m viewing this iPython notebook.

Asked By: Matt

||

Answers:

This is because the indentation is screwed up.
For consistency the codemirror parser will make a red line if it’s not indented 4 spaces (or if it’s indented with tabs, depending on codemirror version). The parser has some edge case that indeed highlight only a few of theses lines in red, I won’t go into details, but if you indent 4 spaces it will work.

You can either:

  • select the block of code and press tab
  • use altclick'n'drag vertically to place multiple cursors in front of your code, and press space enough time to make the correct indent 4 space.

Setting the indent to 2 is possible, but complex and not recommended. 4 space is the python norm.

Answered By: Matt

This is the official solution from the Jupyter Notebook documentation:

  1. Open a Jupyter Notebook
  2. Select a Code Cell
  3. Open your browser’s JavaScript console and run the following snippet:

    var cell = Jupyter.notebook.get_selected_cell();
    var config = cell.config;
    var patch = {
          CodeCell:{
            cm_config:{indentUnit:2}
          }
        }
    config.update(patch)
    
  4. Reload the Notebook page

This fix is permanent.

To reverse the change repeat the process running this snippet:

var cell = Jupyter.notebook.get_selected_cell();
var config = cell.config;
var patch = {
      CodeCell:{
        cm_config:{indentUnit: null} # only change here.
      }
    }
config.update(patch)
Answered By: user4189424
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.