通过jupyter中的custom.js获取当前行

时间:2017-03-30 09:58:50

标签: ipython ipython-notebook jupyter-notebook jupyter

我想通过custom.js在光标位于jupyter单元格的行上插入文本。是否有像Jupyter.notebook.get_current_line()方法的东西?我会搜索文档,但我找不到Jupyter.notebook上所有可调用方法的概述。

1 个答案:

答案 0 :(得分:1)

Jupyter将CodeMirror用于文本编辑器,因此您可以更好地查看CodeMirror API。

因此,您可以使用Jupyter.notebook.get_selected_cell().code_mirror来获取当前单元的CodeMirror实例。

然后你可以使用CodeMirror的getCursor函数来返回光标的位置。它返回行号和光标所在行数的字符数(第一行第一个字符的格式为{line:0,ch:0})

最后,您可以使用replaceRange插入文字。只需保存当前光标位置并使用replaceRange("Your text here",cursor,cursor)

即可

所以,最终的代码看起来像

var cm = Jupyter.notebook.get_selected_cell().code_mirror;
var cursor = cm.getCursor();
cm.replaceRange("Your text here",cursor,cursor);