2012-08-16 182 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

相關問題