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