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.
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.