14

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

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

4

2 回答 2

14

你可以看看 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。

于 2012-04-23T10:20:55.390 回答
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转到您刚刚执行的内容之后的行。作为附带的好处,您还可以使用此命令快速从一个窗口移动到另一个窗口。

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

于 2014-01-15T01:49:01.697 回答