如何在Python解释器中启动Vim?

时间:2013-01-19 08:42:50

标签: python vim

在Ruby中有一个名为interactive_editor的gem,允许在Ruby解释器中输入vi时进入vim会话。

从字面上看,我们需要~/.irbrc文件中的interactive_editor.rb,如下所示:

require '~/interactive_editor.rb'

我们完成了。当我们在交互式会话中进行vi时; vim推出。一旦我们退出编辑器,就会执行vim会话中的代码。 Here is more information about running vim within irb

那么,在Python中有没有相同的东西?

2 个答案:

答案 0 :(得分:3)

vim-ipython插件是IPython和Vim之间的双向集成。

引用https://github.com/ivanov/vim-ipython上的自述文件:

  

使用此插件,您可以将IPython的行或整个文件发送到   执行,并获得对象内省和单词完成   在Vim中,就像你得到的那样:object?<enter>object.<tab> in   IPython的。

以下是该插件的演示:http://pirsquared.org/vim-ipython/

答案 1 :(得分:2)

from os import system as sh
def vim(fname): sh('vim ' + fname)

(重新)加载模块的可能方式:

import imp
from os import system as sh

def _vim(fname, globs):
    sh('vim ' + fname)
    (dirname, _, basename) = fname.rpartition('/')
    modname = basename.rpartition('.')[0]
    m = imp.load_source(modname, fname)
    globs[modname] = m

并且无论何时将其导入解释器,建议手动创建包装器:

def vim(fname): _vim(fname, globals())

因为在python文件中调用的globals()保存文件的全局变量而不是解释器。我知道,它并不优雅。但我建议像reload(modname)一样手动重新加载模块,它可以让你获得更多控制权,但可能会很乏味。