我想在一个运行的jupyter notebook上调用一个API来创建或编辑一个已有的单元格,然后运行它,当这个操作完成后,浏览器页面也应该更新,显示单元格的内容和输出。
这个API的预期用例是vim编辑器的一个插件,它将获取突出显示的行并执行它们。使用jupyter notebook的动机是它将允许使用matplotlib可视化绘图和图像,即使vim和notebook都将在远程服务器上运行。用户将有一个浏览器页面打开到notebook。以及单独地可能被ssh'艾德到机器并编辑Python代码的终端打开。
VSCode在它的python交互模式下正是这样做的,但我更喜欢原生地使用vim编辑器,而不是仅仅为了能够做到这一点而切换到vscode。
4条答案
按热度按时间ifmq2ha21#
目前有几个插件正在积极开发中,在没有使用过它们的情况下,似乎只有vimpyter可以在浏览器上与jupyter交互,其他的如jupyter-vim和vim-ipython可以在vim缓冲区中打开笔记本。
如果您可以不使用内联绘图,我觉得有一个neoterm终端缓冲区是很舒服的,在那里我可以向IPython发送行和从IPython发送行。
xtupzzrd2#
有一个相对较新的nvim插件叫做Jupynium,它可以做类似的事情。
它通过Selenium工作,所以你可以在vim中编辑代码,它会将单元格的输入和执行输出同步到运行笔记本的实时浏览器。
目前,我认为这是最接近你可以得到与jupyter笔记本“内部”vim工作
ffvjumwh3#
您可以使用vscode内置的jupyter notebook支持将notebook转换为python文件
h7wcgrx34#
这不是一个确切的答案,但是我已经编写了两个Jupyter插件,JupyterGraffiti和JupyterTerminals,它们可能对您在这奋进有所帮助。Graffiti有一个API,您可以调用它来执行它的一些函数,并且它支持您可以控制的内联终端。JupyterTerminals只提供那些内联终端,还可以添加一些按钮来控制它们。你可以在这些终端中启动和运行vim。(如果有用的话,可以像Graffiti那样在JupyterTerminals插件中添加一个API。)