Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于IPython和x2B的建议;MacVim工作流_Python_Vim_Ipython - Fatal编程技术网

关于IPython和x2B的建议;MacVim工作流

关于IPython和x2B的建议;MacVim工作流,python,vim,ipython,Python,Vim,Ipython,我刚刚发现,我可以说,我深爱着你。这种感情是立竿见影的。我想这件事会变成持久的事情,比如。Ipython和screen碰巧也是最好的朋友,所以这是一部三角剧。请注意,这纯粹是柏拉图式的 IPython之所以在我身上出现弱点,很大程度上是因为我通常喜欢命令提示,尤其是*nix提示,灵感来自ksh、csh(是的,chs是一个怪物,但作为提示,它有很多非常好的功能)、bash和zsh。对于一个*尼克斯快速骑手来说,伊皮顿确实感觉像是家。混合使用系统shell和python也是一个非常好的主意。另外,当

我刚刚发现,我可以说,我深爱着你。这种感情是立竿见影的。我想这件事会变成持久的事情,比如。Ipython和screen碰巧也是最好的朋友,所以这是一部三角剧。请注意,这纯粹是柏拉图式的

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

现在,我也喜欢维姆。自从我在过去的日子里学会了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或其他fav编辑器,我也很感兴趣。也许有些课程是通用的。

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

我使用Linux,但我相信这个技巧也可以在OS X中使用。我根据建议从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>
autocmd文件类型python映射F5:w:!screen-x ipython-x stuff$'\%run%:p:h\n
然后,当您点击F5时,它将告诉屏幕在先前创建的“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>
autocmd文件类型python映射:w:!screen-x ipython-x stuff$'\%reset\ny\n\%cd%:p:h\n\%run%:t\n
这将执行%reset(对提示回答yes),然后更改到vim中当前缓冲区所在的目录,然后%运行该文件。如果IPython中的%pdb处于活动状态,这将特别有用

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


如果你喜欢Emacs。对于IPython也有同样的问题。

我也有同样的问题。在试验之后,这是我的解决方案:如果您将MacVim.app放在/Applications中,并且mvim在您的路径中,请在~/.ipython/ipythonrc中更改行

editor 0


我认为你需要让MacVim在后台打开。您还可以使用-f标志。从中查看此线程。

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

使用此插件,您可以发送行或整个文件供IPython执行,还可以返回对象内省和单词补全 在Vim中,就像您在IPython中使用的:
object?
object.
一样


看一下这个插件在上运行的两个屏幕截图。

默认情况下
%run foo
表示
python foo.py
。虽然
%run-nfoo
类似于
import-foo
,但这听起来确实很有希望。我已经把它标记为答案,尽管我还不能让它工作。由于某些原因,我的屏幕会话没有到ipython或其他东西的路径。我不太明白。试着用这种方式启动Screen+IPython:$Screen-S IPython IPython
editor mvim --remote-tab-wait-silent