2013-01-19 3 views
4

Ruby 인터프리터에 vi을 입력 할 때 vim 세션을 입력 할 수있는 interactive_editor이라는 보석이 있습니다.파이썬 인터프리터에서 Vim을 시작하는 방법은 무엇입니까?

는 문자 그대로 우리는 다음과 같이 ~/.irbrc 파일에 interactive_editor.rb을 요구해야

require '~/interactive_editor.rb' 

그리고 우리가 수행됩니다. 대화식 세션에서 vi을 할 때; vim이 시작되었습니다. 에디터를 종료하자마자 vim 세션 내의 코드가 실행됩니다. Here is more information about running vim within irb.

그래서 파이썬에는 그와 같은 것이 있습니까?

답변

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

(재) 모듈로드의 가능한 방법 :

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

:

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 

을 언제 인터프리터에이 가져가 수동으로 래퍼를 만들 것을 권장합니다 왜냐하면 파이썬 파일에서 호출되는 globals()은 인터프리터가 아닌 파일의 전역을 보유하기 때문입니다. 나는 그것이 우아하지 않다는 것을 안다. 하지만 reload(modname)과 같이 수동으로 모듈을 다시로드하는 것이 좋습니다. 지루할 수도 있지만 더 많은 제어권을 제공합니다.

+0

vim을 종료하자마자 코드가 해석되지 않습니다. BTW 아주 가까이에 내가 원하는 :) –

3

vim-ipython 플러그인은 IPython과 Vim 간의 양방향 통합입니다. https://github.com/ivanov/vim-ipython의 readme 파일에서 인용

: 당신이 실행 에 IPython을위한 선 또는 전체 파일을 전송하고, 또한 객체 성찰과 단어를 다시 얻을 수있는이 플러그인을 사용

무엇처럼, 빔에 완성형 당신과 함께 : object?<enter>object.<tab> in IPython.

다음은 플러그인의 데모입니다 : http://pirsquared.org/vim-ipython/.

+0

탭 완성은 실제로 내가 원하는 것이 아니며 순수한 파이썬 인터프리터 만 사용하려고합니다. –

+0

@SantoshKumar 파이썬 인터프리터와 함께'Ipython' 쉘을 사용할 수 있습니다 - http://ipython.org/faq.html#can-ipython-run-under-ironpython-pypy-jython-other-python-interpreters, 그것은 간단합니다 표준 파이썬 셸보다 더 구성 가능합니다. – sidi

관련 문제