diff --git a/e-win b/e-win new file mode 100644 index 0000000..521752f --- /dev/null +++ b/e-win @@ -0,0 +1,38 @@ +#!/c/Ruby32-x64/bin/ruby + +GVIM = "C:/apps/vim/vim91/gvim.exe" + +def get_server_name(path) + if path + path = File.expand_path(path) + while path !~ %r{^.\\|/$} + dirname = File.dirname(path) + if File.exist?(File.join(dirname, "project.vim")) + if dirname =~ %r{([^/]+)/([^/]+)/*$} + sn = "#{$2}(#{$1})" + else + sn = File.basename(dirname) + end + return sn + end + path = dirname + end + end + + return "GVIM" +end + +def server_running?(server_name) + `gvim --serverlist`.lines.map(&:chomp).include?(server_name.upcase) +end + +if ARGV.empty? + server_name = get_server_name('local_file') + exec(GVIM, "--servername", server_name, err: "/dev/null") +else + ARGV.each_with_index do |path, i| + server_name = get_server_name(path) + sleep(0.2) if i > 0 + Process.detach(Process.spawn(GVIM, "--servername", server_name, "--remote-tab-silent", path)) + end +end