【问题标题】:Python Interpreter Shell with Vi(m) integration possible?可以集成 Vi(m) 的 Python 解释器外壳吗?
【发布时间】:2012-05-03 22:44:24
【问题描述】:

我喜欢使用 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) 结合起来?

【问题讨论】:

  • err,Pry 已经内置了interactive_editor 的功能,你意识到了吗? see here
  • 一个务实的解决方案可能是遵循这里给出的建议 - stackoverflow.com/questions/6636124/… 如果你只是希望 python 解释器键绑定与 VI 一致

标签: python vi


【解决方案1】:

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

【讨论】:

  • 非常感谢,这正是我想要的。
【解决方案2】:

我无法让 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。现在回到原来的窗口(快捷方式是&lt;C-w&gt;&lt;S-w&gt;)并输入一些Python代码。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多