On Thursday, June 18, 2015 at 7:52:53 AM UTC-5, David Fishburn wrote:
> On Thu, Jun 18, 2015 at 2:57 AM, John Beckett <johnb.beckett@gmail.com> wrote:
> David Fishburn wrote:
> 
> > I use gVim for diffing from my source control system using:
> 
> > gvim.exe -O -d file1.txt file2.txt
> 
> 
> 
> I avoid problems by working in Vim. I use some external tool to generate a list of files I want to diff, then paste it into a temporary buffer in Vim. Either the external tool or a Vim script massages the list to come up with text like this:
> 
> 
> 
> :tabe new1.txt
> 
> :vert diffs old1.txt
> 
> 
> 
> 
> Thanks for the suggestion John.
> 
> 
> So basically I need to run some of my own commands, like you have done above.
> 
> 
> But I am running into the following issue.
> 
> 
> $ gvim.exe --servername DIFF -c "echo 1"
> 
> 
> $ gvim.exe --servername DIFF -c "echo 2"
> 
> 
> 
> I was hoping the 2nd call to gvim would use the already running servername DIFF, but it instead launches a new vim instance called DIFF1
> 
> 
> 
> 
> So I tried some alternatives:
> 
> 
> $ gvim.exe --servername DIFF --remote-send "echo 1"
> 
> 
> This one tells me the vim instance DIFF isn't running (which it isn't).
> 
> 
> $ gvim.exe --servername DIFF --remote-expr "echo 1"
> 
> 
> 
> Same with this one.
> 
> 
> 
> 
> Basically, I am trying to do this in a Windows batch / cmd file:
> 
> 
> 
> function! DiffByTab( file1, file2 )
>     echomsg 'F1:'.a:file1.'  F2:'.a:file2
>     exec 'tabedit '.a:file1
>     exec 'vert diffsplit '.a:file2
> endfunction
> 
> 
> 
> 
> 
> start gvim.exe --servername DIFF -c ":call DiffByTab( '%1', '%2' )" 
> 
> 
> I have this working, but if I call it a second time with another set of files, it just launches another instance of vim instead of using the one specified by --servername.
> 
> 
Ah, you have a function to do it already. The problem is that only --remote type commands are forwarded to an existing Vim instance; any other commands get directed at the Vim you are launching to send those remote commands.
See my other post; you can use your function in the existing Vim if you use --remote-send. But since it is a function, you could actually invoke it more easily using --remote-expr:
gvim --servername gDiff --remote-expr "DiffByTab('%1', '%2')"
-- 
-- 
You received this message from the "vim_use" 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 because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment