diff options
author | Bram Moolenaar <Bram@vim.org> | 2004-06-13 20:20:40 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2004-06-13 20:20:40 +0000 |
commit | 071d4279d6ab81b7187b48f3a0fc61e587b6db6c (patch) | |
tree | 221cbe3c40e043163c06f61c52a7ba2eb41e12ce /runtime/plugin/rrhelper.vim | |
parent | b4210b3bc14e2918f153a7307530fbe6eba659e1 (diff) | |
download | vim-git-071d4279d6ab81b7187b48f3a0fc61e587b6db6c.tar.gz |
updated for version 7.0001v7.0001
Diffstat (limited to 'runtime/plugin/rrhelper.vim')
-rw-r--r-- | runtime/plugin/rrhelper.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/runtime/plugin/rrhelper.vim b/runtime/plugin/rrhelper.vim new file mode 100644 index 000000000..05090b59c --- /dev/null +++ b/runtime/plugin/rrhelper.vim @@ -0,0 +1,47 @@ +" Vim plugin with helper function(s) for --remote-wait +" Maintainer: Flemming Madsen <fma@cci.dk> +" Last Change: 2004 May 30 + +" Has this already been loaded? +if exists("loaded_rrhelper") + finish +endif +let loaded_rrhelper = 1 + +" Setup answers for a --remote-wait client who will assume +" a SetupRemoteReplies() function in the command server + +if has("clientserver") + function SetupRemoteReplies() + let cnt = 0 + let max = argc() + + let id = expand("<client>") + if id == 0 + return + endif + while cnt < max + " Handle same file from more clients and file being more than once + " on the command line by encoding this stuff in the group name + let uniqueGroup = "RemoteReply_".id."_".cnt + + " Path separators are always forward slashes for the autocommand pattern. + " Escape special characters with a backslash. + let f = escape(substitute(argv(cnt), '\\', '/', "g"), ' *,?[{') + execute "augroup ".uniqueGroup + execute "autocmd ".uniqueGroup." BufUnload ". f ." call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')" + let cnt = cnt + 1 + endwhile + augroup END + endfunc + + function DoRemoteReply(id, cnt, group, file) + call server2client(a:id, a:cnt) + execute 'autocmd! '.a:group.' BufUnload '.a:file + execute 'augroup! '.a:group + endfunc + +endif + + +" vim: set sw=2 sts=2 : |