用例:我想将ipython笔记本下载为.py文件,因为我不喜欢在jupyter笔记本环境中工作。但是我想使用Vim和ipython shell从vim中模拟jupyter笔记本的使用/功能,特别是在单个单元/块执行方面。
详细来说,这就是我想要做的:
-1将jupyter笔记本转换为.py文件
-2在vim中编辑.py文件
-3在IPython shell中执行我正在Vim中编辑的当前单元格/块,以查看结果。
-4返回编辑.py文件
循环2-4,直到完成,可能转换回ipynb。
我当前的设置是Vim运行有分割窗口。第一个窗口显示.py文件进行编辑,第二个窗口运行vim终端窗口:term
,并在第一个窗口下方运行IPython shell。
这是从ipython笔记本转换而来的.py文件的样子:
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import numpy as np
# In[2]:
x = 3
# In[3]:
y = 4
z = 5
我想创建一个vim键盘绑定,以检测我当前正在.py文件中的vim中编辑的单元格,将其突出显示,将其复制到剪贴板,然后将窗口切换到IPython shell,并在可能的情况下将其粘贴,执行它,然后返回到vim .py文件编辑器窗口。
我尝试过,但是没有用:nnoremap <C-y> /# In\[.*\]: <CR> j <C-v> n k "+y
*注:我愿意提出改善这个问题的建议,我不想在jupyter笔记本中使用vim键绑定。我想从vim本身中启用jupyter的行为和使用。
映射中的空格过多。请记住:vim
从字面上运行映射,空格表示空格,而不是命令之间的分隔符。这对我有用:
:nnoremap <C-y> /# In\[.*\]:<CR>jVnk"+y