Python解释器外壳与Vi(m)集成是否可能?

Python解释器外壳与Vi(m)集成是否可能?,python,vi,Python,Vi,我喜欢使用bpython,但是在Ruby中有一个叫做interactive_editor的gem,它使Vi(m)与Ruby shell相结合成为可能,从而使开发过程更加舒适。交互式编辑器的良好介绍: 是否有任何工具(如interactive_editor for Ruby)可用于将Python shell与Vi(m)结合起来?您可以看看vim ipython vim插件: 这要求您安装ipythonshell(但我还是建议您这样做,因为它为标准pythonshell添加了很多功能) 如果您不想

我喜欢使用bpython,但是在Ruby中有一个叫做interactive_editor的gem,它使Vi(m)与Ruby shell相结合成为可能,从而使开发过程更加舒适。交互式编辑器的良好介绍:


是否有任何工具(如interactive_editor for Ruby)可用于将Python shell与Vi(m)结合起来?

您可以看看vim ipython vim插件:

这要求您安装ipythonshell(但我还是建议您这样做,因为它为标准pythonshell添加了很多功能)

如果您不想安装ipython,我建议您看看vim的ConqueShell插件:

这允许您在vim中运行shell。一旦你找到vim球的来源,你需要做的就是

:ConqueTerm python

要直接在vim中获得python shell,我无法让vim ipython正常工作,因此我制作了这个与ConqueShell一起工作的.vimrc解决方案:

imap <silent> <leader>m <Esc>Vy<C-w><C-w>p
nmap <silent> <leader>m Vy<C-w><C-w>p
vmap <silent> <leader>m y<C-w><C-w>p
imap <silent> <leader>n <Esc><C-w><S-w>']0j
nmap <silent> <leader>n <C-w><S-w>']0j
imap m Vyp
nmap m Vyp
vmap m yp
imap n']0j
nmap n']0j
从安装的新Vim屏幕和ConqueShell中,键入
:ConqueTermSplit python
。现在返回到原始窗口(快捷方式是
),并键入一些Python代码

要将To光标下的行发送到解释器,请按
m
。我把引线映射到逗号,这是一个非常简单的动作。要发送代码块,请在视觉模式下突出显示一些行,然后执行
m
。它的工作原理是一样的

要返回到脚本,
n
转到刚刚执行的脚本后面的一行。另一个好处是,您还可以使用此命令快速地从一个窗口移动到另一个窗口


编辑(2-20-2015):如果您使用ipython作为解释器,则需要运行
%autoindent
以关闭自动缩进以保留某些代码块的格式。干杯

非常感谢,这正是我想要的。呃,Pry已经内置了
interactive\u editor
的功能,你意识到了吗?一个实用的解决方案可能是遵循这里给出的建议——如果您只希望python解释器键绑定与VI保持一致,那么就可以这样做