Hi, With a python-enabled VIM it's possible to execute and thus test the python code. I have the following lines in my vimrc. F2 prints the result of a line evaluation on the bottom or in a window named pyout if there. I open pyout with ":vert rightb new pyout" mapped to F1. F4 does the same on the selected part of a line F3 evaluates without printing
py import vim py << EOL def PyOutput(): iPy=-1 for i in range(len(vim.buffers)): if vim.buffers[i].name and vim.buffers[i].name.find("pyout")!=-1: iPy=i return iPy EOL "pyout if present must be right below "r replaces, p prints, symb sets the start py << EOL def PrintCurrentLine(*args): cur_str = vim.current.line action, symb = None, None for i in args: if i in ["r","p"]: action = i else: symb = i try: start = cur_str.rindex(symb)+len(symb) except: start = 0 eval(compile("pyoutres="+cur_str[start:],'<string>','exec'),globals()) result = eval("pyoutres",globals()) if action == "r": vim.current.line = cur_str[:start]+str(result) else: iPy=PyOutput() if iPy != -1: resS=">>> "+cur_str+":"+'\n'+str(result)+'\n' resL=resS.split('\n') vim.buffers[iPy].range(0,0).append(resL) vim.command("wincmd b") vim.command("normal gg") vim.command("wincmd p") vim.command("wincmd j") else: print result EOL command -narg=* Pyl python PrintCurrentLine(<f-args>) map <F2> :py PrintCurrentLine()<CR> "this evaluates selected region with <F2> map <F4> "tyo^["tp<F2>u map <F1> :vert rightb new pyout python << EOL def EvaluateCurrentRange(): c_r=vim.current.range i=0 while c_r[0].startswith(' '*(i+1)): i+=1 rngstr='\n'.join([ln[i:] for ln in c_r]) eval(compile(rngstr,'<string>','exec'),globals()) EOL map <F3> :py EvaluateCurrentRange()<CR> [EMAIL PROTECTED] schrieb am 19.06.2007 17:20:08: > Bjoern Schliessmann wrote: > > BartlebyScrivener wrote: > >> VIM > > > > *clap-clap* > > > > BTW, are there tutorials on the more arcane vim functions that come > > in handy with Python? > > > > Regards, > > > > > > Bj?rn > > > Not a tutorial, but I found this little snippet: > > http://www.ibiblio.org/obp/pyBiblio/tips/elkner/vim4python.php > > I thought the last line was especially neat. > > Will > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list