Loading ...
Sorry, an error occurred while loading the content.

Re: Launching an already open file

Expand Messages
  • E. Wing
    ... Thanks, the URL handler did exactly what I needed it to and only took me a line of code. -Eric -- You received this message from the vim_mac maillist. Do
    Message 1 of 8 , Nov 3, 2010
    View Source
    • 0 Attachment
      > Alternatively, you may be able to use the mvim:// URL handler, see ":h mvim://".

      Thanks, the URL handler did exactly what I needed it to and only took
      me a line of code.

      -Eric

      --
      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
    • ghuiber
      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,
      Message 2 of 8 , Aug 1, 2011
      View Source
      • 0 Attachment
        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
      • Ben Schmidt
        ... I don t really think this is the answer to your problem, but you probably want at the end of your mappings. ... Does StataMP quit after running once
        Message 3 of 8 , Aug 3, 2011
        View Source
        • 0 Attachment
          > " 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()

          I don't really think this is the answer to your problem, but you
          probably want <CR> at the end of your mappings.

          :map <F7> :<C-U>call RunIt()<CR>
          :imap <F7> <Esc>:<C-U>call RunIt()<CR>

          > 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.

          Does StataMP quit after running once or remain open? If it remains open,
          perhaps that is the problem, as it can't be given arguments if it isn't
          being launched. You may need to find another way to communicate with it
          if it is already open, e.g. AppleScript:

          !osascript -e 'tell app "StataMP" to open "%:p"'

          That will probably launch the app if it isn't already running, too.

          Ben.



          --
          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
        • Charles Campbell
          ... 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
          Message 4 of 8 , Aug 5, 2011
          View Source
          • 0 Attachment
            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
          • Gabi Huiber
            In case anybody is curious, and for the sake of thorough documentation: I found a solution, with help from the Statalist. Rather than the Vim plugin Chip
            Message 5 of 8 , Sep 15, 2011
            View Source
            • 0 Attachment
              In case anybody is curious, and for the sake of thorough
              documentation: I found a solution, with help from the Statalist.
              Rather than the Vim plugin Chip Campbell suggested, I ended up leaving
              it to the OS. Two very minimalistic Vim functions call a bash script
              each. This does the job.

              The whole conversation can be traced back from here:
              http://www.stata.com/statalist/archive/2011-09/msg00556.html. The
              entire code is shown as well.

              Best,
              Gabi


              On Fri, Aug 5, 2011 at 11:09 AM, Charles Campbell
              <Charles.E.Campbell@...> wrote:
              > 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
              >

              --
              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
            • Kelan Champagne
              ... Related to this, I just discovered that you can bring that existing window forward, if you know its servername. Just do: $ mvim --servername VIM
              Message 6 of 8 , May 9, 2012
              View Source
              • 0 Attachment
                On Nov 3 2010, 11:19 am, björn <bjorn.winck...@...> wrote:
                > Finally, if you have a specific MacVim window that you wish to open a file in
                > then you should use the --servername and --remote family of arguments to the
                > "mvim" script, e.g.
                >
                > mvim --servername VIM --remote-silent filename

                Related to this, I just discovered that you can bring that existing window
                forward, if you know its servername. Just do:

                $ mvim --servername VIM --remote-expr "foreground()"

                This is useful if you want to avoid the warnings about the swap file already
                existing when you try to re-open the file, and would rather just bring that
                window to the front.

                -Kelan

                --
                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
              Your message has been successfully submitted and would be delivered to recipients shortly.