代码之家  ›  专栏  ›  技术社区  ›  PEZ

关于IPython+MacVim工作流的建议

  •  18
  • PEZ  · 技术社区  · 15 年前

    我刚找到 IPython 我可以告诉你我深爱着你。这种感情是立竿见影的。我想这件事会变得持久,比如 the one I have with screen

    IPython之所以在我身上出现弱点,很大程度上是因为我通常喜欢命令提示,尤其是*nix提示,灵感来自ksh、csh(是的,chs是一个怪物,但作为提示,它有很多非常好的功能)、bash和zsh。对于一个*尼克斯快速骑手来说,伊皮顿确实感觉像是家。混合使用系统shell和python也是一个非常好的主意。另外,当然,IPython在解决问题时帮助很大 the Python Challenge 谜语。甚至是无价之宝。

    现在,我也喜欢维姆。自从我在过去的日子里学会了vi,就再也没有回头路了。当我有选择的时候,我在Mac上。现在我想把我的IPython+MacVim工作流程粘在一起。到目前为止,我所做的是,我开始使用Ipython:

    ipython -e "open -a MacVim"
    

    因此,当我从IPython编辑时,它会在加载文件/模块的情况下启动MacVim。可能看起来有点像这样:

    In [4]: %run foo #This also "imports" foo anew
    hello world
    
    In [5]: edit foo
    Editing... done. Executing edited code... #This happens immediately
    hello world
    
    In [6]: %run foo
    hello SO World
    

    4 回复  |  直到 7 年前
        1
  •  14
  •   Manuel Ceron    15 年前

    我使用Linux,但我相信这个技巧也可以在OSX中使用。我用 GNU Screen 按照建议从Vim发送IPython命令 this tip . 我就是这样做的:

    $ screen -S ipython
    $ ipython
    

    然后你应该把它放在你的.vimrc中:

    autocmd FileType python map F5 :w<CR>:!screen -x ipython -X stuff $'\%run %:p:h\n'<CR><CR>
    

    然后,当您点击F5时,它将告诉屏幕在先前创建的“ipython”中执行命令“%run file”,其中file是Vim中的当前缓冲区。

    autocmd FileType python map <F5> :w<CR>:!screen -x ipython -X stuff $'\%reset\ny\n\%cd %:p:h\n\%run %:t\n'<CR><CR>
    

    这将执行%reset(对提示回答yes),然后更改到vim中当前缓冲区所在的目录,然后%运行该文件。如果IPython中的%pdb处于活动状态,这将特别有用。

    不要忘记,您需要一个名为“ipython”的活动屏幕会话,其中ipython在内部运行。

    如果你喜欢Emacs。有 good support

        2
  •  5
  •   Paul Ivanov    13 年前

    这个问题现在已经过时了,但仅供参考-如果您使用启用了ZeroMQ的IPython 0.11,请查看 vim-ipython (0.11附带的旧版本)。

    在Vim中,您可以通过以下方式获得: object?<enter> object.<tab> 在伊皮顿。

    看一看这个插件的两个屏幕截图 this post .

        3
  •  1
  •   Igal Serban    15 年前

    在主目录中的ipythonrc.ini文件中,将编辑器更改为MacVim。

        4
  •  1
  •   Guillermo Garza    15 年前

    editor 0
    

    editor mvim --remote-tab-wait-silent
    

    我认为你需要让MacVim在后台打开。您还可以使用-f标志。看这条线,从 MacVim google group .