在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中有没有相同的东西?
答案 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)
一样手动重新加载模块,它可以让你获得更多控制权,但可能会很乏味。