13

I'm writing a Jupyter notebook for a database course; most cells will contain SQL code, for which I use the IPython SQL magic. Currently I have to prepend each cell with %%sql. Is there a way to avoid typing %%sql before each cell, by making it the default?

I found a related question at How do I set up default cell magics for every ipython notebook cell?. However, I couldn't find a SQL kernel for Jupyter.

rodrigorgs
  • 855
  • 2
  • 9
  • 20

1 Answers1

8

The Jupyter docs tell you how you can edit the CodeMirror settings. CodeMirror has an option called value that determines the default value of a CodeMirror cell (doc link).

So, in ~/.jupyter/nbconfig/notebook.json paste in the following code:

{
    "CodeCell": {
        "cm_config": {
            "value": "%%sql"
        }
    }
}

and now every new cell will have %%sql in it. Obviously this solution applies to any cell magic or indeed any default value you may want your code cells to have.

Louise Davies
  • 14,781
  • 6
  • 38
  • 41