ghuiber wrote:
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()
I'm more curious than otherwise; have you considered using RunVIew with
let b:runview_filtcmd="open -a StataMP --args do"?
You may get a new version of RunView from:
http://mysite.verizon.net/astronaut/vim/index.html#RUNVIEW (beta)
To install, simply:
vim RunView.vba.gz
:so %
:q
I don't have StataMP to test this out, so the b:runview_filtcmd may or
may not be correct for RunView and StatMP.
If it is correct, you'd want to have it in
.vim/ftplugin/[pick-a-suffix].vim or
.vim/ftplugin/[pick-a-suffix]/statmp.vim .
Regards,
Chip Campbell
--
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