##// END OF EJS Templates
Merging -r 1179 from lp:ipython....
Merging -r 1179 from lp:ipython. No conflicts.

File last commit:

r1251:99658885
r2126:2fd04f05 merge
Show More
ipy.vim
67 lines | 1.5 KiB | text/x-vim | VimLexer
Ville M. Vainio
add ipy_vimserver.py extension, and ipy.vim to doc/examples. Both contributed by Erich Heine
r1076 if !exists("$IPY_SESSION")
finish
endif
" set up the python interpreter within vim, to have all the right modules
" imported, as well as certain useful globals set
python import socket
python import os
python import vim
python IPYSERVER = None
python << EOF
# do we have a connection to the ipython instance?
def check_server():
global IPYSERVER
if IPYSERVER:
return True
else:
return False
# connect to the ipython server, if we need to
def connect():
global IPYSERVER
if check_server():
return
try:
IPYSERVER = socket.socket(socket.AF_UNIX)
IPYSERVER.connect(os.environ.get('IPY_SERVER'))
except:
IPYSERVER = None
def disconnect():
if IPYSERVER:
IPYSERVER.close()
def send(cmd):
x = 0
while True:
x += IPYSERVER.send(cmd)
if x < len(cmd):
cmd = cmd[x:]
else:
break
def run_this_file():
if check_server():
send('run %s' % (vim.current.buffer.name,))
else:
raise Exception, "Not connected to an IPython server"
EOF
fun! <SID>toggle_send_on_save()
if exists("s:ssos") && s:ssos == 1
let s:ssos = 0
au! BufWritePost *.py :py run_this_file()
echo "Autosend Off"
else
let s:ssos = 1
au BufWritePost *.py :py run_this_file()
echo "Autowsend On"
endif
endfun
map <silent> <F5> :python run_this_file()<CR>
imap <silent> <C-F5> <ESC><F5>a
map <F7> :call <SID>toggle_send_on_save()<CR>
py connect()