I have a similar problem. I use Vim to edit Stata scripts (stata.com). These scripts are called do-files. They are simple text files, but with a .do extension, which Stata uses to recognize them as scripts. The Stata command for executing such a script, say called filename.do, is "do filename".
In Windows, there is a way to launch Stata from Vim to execute either a do-file, or a set of selected lines in a do-file that is being edited in Vim. This can be repeated as many times as you want, whether or not Stata is already running, inside the same instance of Stata. I would like to get MacVim to do the same. The Windows solution consists of two parts. The first is a rundo.exe file written with an AutoIt script as described here -- http://s281191135.onlinehome.us/2008/20080427-stata.html. The second is a Vim script as described here -- http://www.stata.com/statalist/archive/2006-06/msg00905.html. This Vim script goes into _gvimrc, and it describes two Vim functions: RunIt() for making Stata execute a do-file being edited in Vim, and RunDoLines() for making Stata execute a subset of selected lines of that file. For my first attempt at getting this to work in MacVim, I modified the script as shown below: " STATA DO-FILE SCRIPT function RunIt() wa !open -a StataMP --args do "%:p" endfunction :map <F7> :<C-U>call RunIt() :imap <F7> <Esc>:<C-U>call RunIt() function RunDoLines() let selectedLines = getbufline('%', line("'<"), line("'>")) if col("'>") < strlen(getline(line("'>"))) let selectedLines[-1] = strpart(selectedLines[-1], 0, col("'>")) endif if col("'<") != 1 let selectedLines[0] = strpart(selectedLines[0], col("'<")-1) endif let temp = tempname() . ".do" call writefile(selectedLines, temp) exec "!open -a StataMP --args do " . temp " Delete the temp file after Vim closes au VimLeave * silent exe '!rm "'.$TEMP.'\*.do"' endfunction :map <F8> :<C-U>call RunDoLines() :imap <F8> <Esc>:<C-U>call RunDoLines() Unfortunately, this doesn't work all that well. Either RunIt() or RunDoLines() will work as expected only once. All subsequent calls to either function will be ignored. What am I missing? Thank you, Gabi -- View this message in context: http://vim.1045645.n5.nabble.com/Launching-an-already-open-file-tp3248056p4655491.html Sent from the Vim - Mac mailing list archive at Nabble.com. -- You received this message from the "vim_mac" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
