##// END OF EJS Templates
Merge in all development done in bzr since February 16 2008....
Merge in all development done in bzr since February 16 2008. At that time, a clean bzr branch was started from the SVN tree, but without SVN history. That SVN history has now been used as the basis of this branch, and the development done on the history-less BZR branch has been added and is the content of this merge. This branch will be the new official main line of development in Launchpad (equivalent to the old SVN trunk).

File last commit:

r1076:b99e42a7
r1218:6b454030 merge
Show More
ipy.vim
67 lines | 1.5 KiB | text/x-vim | VimLexer
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()