像Vim和IPython shell这样的笔记本电脑 用例
我想将ipython笔记本作为.py文件下载,因为我不喜欢在jupyter笔记本环境中工作。但是我想使用Vim和ipython外壳来模拟Vim中jupyter笔记本的使用/功能,特别是关于单个单元/块执行 具体来说,这就是我想要做的:像Vim和IPython shell这样的笔记本电脑 用例,vim,jupyter-notebook,Vim,Jupyter Notebook,我想将ipython笔记本作为.py文件下载,因为我不喜欢在jupyter笔记本环境中工作。但是我想使用Vim和ipython外壳来模拟Vim中jupyter笔记本的使用/功能,特别是关于单个单元/块执行 具体来说,这就是我想要做的: 将jupyter笔记本转换为.py文件 在vim中编辑.py文件 在IPython shell中执行我正在Vim中编辑的当前单元格/块,以查看结果 返回编辑.py文件 循环2-4直到完成,可能会转换回ipynb 我当前的安装程序使用拆分窗口运行Vim。第一个窗
- 循环2-4直到完成,可能会转换回ipynb
:term
,并在第一个窗口下方运行IPython外壳
这是从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 keybinding,它检测我当前在.py文件的vim中编辑的单元格块,高亮显示它,将它复制到剪贴板,然后将窗口切换到IPython外壳,如果可能,粘贴它,执行它,并返回到vim.py文件编辑器窗口
我试过这个,但没用:
nnoremap <C-y> /# In\[.*\]: <CR> j <C-v> n k "+y
nnoremap/#In\[.*\]:j n k“+y
注意:我不想在jupyter笔记本中使用vim键绑定。我想启用类似jupyter的行为并从vim本身中使用。映射中的空格太多。请记住:
vim
运行映射字面上讲,空格表示空格,而不是命令之间的分隔符。这对我来说很有用:
:nnoremap <C-y> /# In\[.*\]:<CR>jVnk"+y
括号用于对表达式进行分组;
\\\124;
用于分离或分支。谢谢!另外,是否可以将通过vim的:term命令运行的IPython shell粘贴到.py文件下面的窗口中,然后运行它并返回编辑器?有任何可能吗?不知道,从未使用过IPython或vim的:term
ed一个终端我运行一个终端仿真器(我使用rxvt unicode
)。当我需要Python命令行时,我运行纯Python,配置了大量的PYTHONSTARTUP
vim
。对于我来说,它只是一个文本编辑器,我不使用它作为IDE。明白了。另外,我注意到这对最后一个块不起作用,因为在[…]中没有在文件的末尾。有没有办法解决这个问题?如果没有的话,只需在文件的末尾添加一行就可以了。谢谢。我修改了你的宏,现在它可以工作了::nnoremap/\(\[.*\]:\)\\\\\\\\(\%$\)NjVnk“+ynj:noh
。请修改您的原始答案,以便我可以将其标记为已回答。我不确定为什么通常在vim编辑器中使用“/”进行搜索时,我只需要在管道“|”字符之前使用一个“\”,但在.vimrc中,我必须使用两个才能使宏正常工作。
\(# In\[.*\]:\|\%$\)