Add code to make autoswap work on Windows.#3
Add code to make autoswap work on Windows.#3torrinj wants to merge 1 commit intogioele:masterfrom torrinj:master
Conversation
There was a problem hiding this comment.
Hi, thank you for the PR!
Maybe it is possible to simplify all this code using something like
let fname_esc = substitute(a:filename, "'", "''", "g")
let servername = ...
if remote_expr(servername, "bufloaded('" . fname_esc . "')")
return servername
endifHave a look at https://github.com/svintus/vim-editexisting/blob/master/plugin/editexisting.vim#L22-L71.
This technique is not applicable for vim inside a terminal and for some gvim instances, but it is possible that it works fine for win32.
|
I did a quick test and found that remote_expr() returns a result right away, so using it will probably simplify the code a lot since a bunch of that code was dedicated to just waiting for a response. Now that I think about it, I'm not sure what happens if a VIM is unable to respond right away. I'll have to test it. Anyway, I'll see what I can do with the code a little later. As for the last line of your comment. I would assume the technique will work where ever VIM is compiled with +clientserver. Are you aware of places where we have +clientserver but the technique doesn't work? |
|
It does not simplify the situation when there are GVim instances and Vim instances in terminals, in particular because the latter cannot raise themselves. But I suppose that in Windows all the sessions are Win32 sessions in their own windows, so using the features exposed by |
Some changes to attempt to make this work on Windows using +clientserver. Not perfect, but works.