Vim绑定,用于在Vim和IPython shell中提供类似jupyter的笔记本功能

问题描述 投票:0回答:1

用例:我想将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 jupyter-notebook
1个回答
0
投票

映射中的空格过多。请记住:vim从字面上运行映射,空格表示空格,而不是命令之间的分隔符。这对我有用:

:nnoremap <C-y> /# In\[.*\]:<CR>jVnk"+y
© www.soinside.com 2019 - 2024. All rights reserved.