具有Vi(m)集成的Python解释器Shell可能吗?

时间:2012-04-23 10:10:40

标签: python vi

我喜欢使用bpython但是在Ruby中有一个名为interactive_editor的gem,它可以将Vi(m)与Ruby shell结合起来,这使得开发过程更加舒适。对interactive_editor的一个很好的介绍:http://vimcasts.org/episodes/running-vim-within-irb/

是否有可用于将Python shell与Vi(m)组合的工具(如Ruby的interactive_editor)?

2 个答案:

答案 0 :(得分:12)

你可以看看vim-ipython vim插件:

https://github.com/ivanov/vim-ipython

这需要你安装ipython shell(但我建议这样做,因为它为标准的python shell添加了很多功能)。

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

http://www.vim.org/scripts/script.php?script_id=2771

这使您可以在vim中运行shell。一旦你采购了vim-ball,你需要做的只是

:ConqueTerm python

直接在vim中获取python shell。

答案 1 :(得分:1)

我无法让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

在新的Vim屏幕和ConqueShell上安装,输入:ConqueTermSplit python。现在返回到原始窗口(快捷方式为<C-w><S-w>)并输入一些Python代码。

要将光标下的行发送到解释器,请按<leader>m。我将领导者映射到逗号,这是一个非常简单的动作。要发送代码块,请以可视模式突出显示某些行并执行<leader>m。它的工作方式相同。

要返回到您的脚本,<leader>n会立即执行刚刚执行的操作。作为附带好处,您还可以使用此命令快速从一个窗口移动到另一个窗口。

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