2012-08-16 123 views
2

因为我的问题Setting servername in vimrc as opposed to command line switch原来不可行,所以我在寻求帮助。除了gvim的不同实例外,有什么方法可以分辨出来吗?有没有办法告诉gvim的实例,而不使用--servername?

场景:我正在为vim制作一个轻量级的实时LaTeX插件。目前它只要我只有一个gvim运行的实例就可以工作。但是,如果我在单独的窗口中打开两个.tex文件,命令我使用让我的预览,邑,谈vim的

"C:\Program Files (x86)\Vim\vim73\gvim.exe" --remote +%l "%f 

并不总是跟GVIM运行的正确实例。在我之前的问题中,我试图使用--servername选项来让它与正确的实例对话,但是由于我通过右键单击 - >使用 - > gvim打开gvim,并且因为我无法在运行时设置servername ,我无法获得gvim的每个实例来获取唯一的服务器名称。

那么有什么方法可以唯一标识每个gvim实例吗?我最后的手段是使用autohotkey解析窗口标题中的文件名并通过autohotkey发送密钥,但我觉得应该有一个更简单的方法...

+0

你是否在寻找'五:servername'? – 2012-08-17 01:20:25

+0

如果你阅读第一句中链接到的问题的答案,你会发现'v:servername'是只读的,只能由'--servername'开关设置,这个问题是避免的。 – nullUser 2012-08-17 01:28:44

+4

每个vim实例都会将'v:servername'设置为不同的东西。我想提出的想法与AsysnCommand中使用的技术以及本vim wiki文章中提到的技术相同:http://vim.wikia.com/wiki/Execute_external_programs_asynchronously_under_Windows#Getting_results_back_into_Vim – 2012-08-17 01:46:16

回答

0

每个启动的Vim实例都会自动有一个独特的v:servername;在Windows上,我得到GVIMGVIM1GVIM2,...

(已经由彼得Rincker在评论中提到。)

+0

-1用于窃取(并承认此)评论并张贴该答案。 – eckes 2012-08-17 12:41:26

+0

为什么讨厌?我添加了示例信息,并且保存了其他用户试图回答未回答的问题以及通过评论进行筛选。 – 2012-08-17 13:37:14

+0

+1。我花了5个小时做出了关于'v:servername'的自己的答案,Ingo在描述它时做得非常好。 – 2012-08-17 19:38:32

相关问题