Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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 alt-click'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.


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)