问题:关于 IPython + MacVim 工作流程的建议

我刚刚找到了IPython,我可以报告说我深爱着。感情是立竿见影的。我认为这件事会变成一件持久的事情,就像我拥有的屏幕一样。 Ipython 和 screen 恰好也是最好的朋友,所以这是一部三角剧。请注意,纯粹是柏拉图式的。

IPython 对我情有独钟的原因是因为我通常喜欢命令提示符,尤其是受 ksh、csh 启发的受 *nix 启发的提示符(是的,chs 是一个怪物,但作为提示符,它确实包含很多良好的功能),bash 和 zsh。对于 *nix 提示骑手来说,IPython 确实感觉像家一样。混合系统 shell 和 python 也是一个非常好的主意。另外,当然,IPython 在解决Python Challenge谜语时有很大帮助。甚至是无价之宝。

现在,我也喜欢 Vim。由于我在那些日子里学会了 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

好的。我认为这可以改进。也许也有办法将 IPython 与 MacVim 联系起来?请分享您的经验。当然,如果您使用 TextMate 或其他一些我喜欢的编辑器,我也很感兴趣。也许有些教训是普遍的。

解答

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

首先,您应该打开一个终端并启动一个名为“ipython”或任何您想要的屏幕会话,然后启动 IPython:

$ screen -S ipython
$ ipython

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

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

然后当你按下 F5 时,它会告诉 Screen 在之前创建的 'ipython' 中执行命令 '%run file',其中 file 是你在 Vim 中的当前缓冲区。

您可以调整它以在 Vim 的 IPython 中执行您想要的命令。例如我使用这个:

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 (对提示回答是),然后切换到 vim 中当前缓冲区所在的目录,然后 %run 文件。如果您在 IPython 中激活了 %pdb,这将特别有用。

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

如果你喜欢 Emacs。对于 IPython 有很好的支持。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐