4

Ruby には、 Ruby インタープリターinteractive_editorに入るときに vim セッションに入ることができるという gem があります。vi

interactive_editor.rb文字通り、次のように~/.irbrcファイル内でrequire する必要があります。

require '~/interactive_editor.rb'

これで完了です。viインタラクティブセッションでやると・・・ vimが起動します。エディターを終了するとすぐに、vim セッション内のコードが実行されます。irb 内での vim の実行に関する詳細情報は次のとおりです。

それで、Pythonでそれに相当するものはありますか?

4

2 に答える 2

3

vim-ipython プラグインは、IPython と Vim 間の双方向統合です。

https://github.com/ivanov/vim-ipythonの readme ファイルからの引用:

このプラグインを使用すると、IPython が実行する行またはファイル全体を送信できます。また、IPython で得られるように、Vim でオブジェクトのイントロスペクションと単語補完を取得することもできobject?<enter>ますobject.<tab>

プラグインのデモは次のとおりです: http://pirsquared.org/vim-ipython/

于 2013-01-19T09:09:35.493 に答える
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)ます。面倒かもしれませんが、より細かく制御できます。

于 2013-01-19T09:42:15.107 に答える