2013-11-25 37 views
1

我已搜索並找到與此相關的線程,但不完全相同的情況。使用VIM在選項卡而不是窗口中打開文件

我在Windows7中使用VIM。它被設置爲文本文件的默認編輯器。 問題是,當我點擊一些文本文件以打開它時,無論我是否已經打開一個或多個VIM窗口,它都會在新的VIM窗口中打開。

如何改變這種行爲? 謝謝!


UPDATE: 這個方案解決了我的問題:http://defaultprogramseditor.com/

回答

0

您應該在Windows中手動設置文件關聯,以便使用自定義命令啓動Vim。如果您是管理員,不介意弄亂EVERYBODY的配置,則可以在cmd.exe shell中使用ftypeassoc命令。否則,您可以在HKEY_CURRENT_USER\Software\Classes中手動創建註冊表項。

註冊表方法實際上設置了與ftypeassoc自動設置相同的結構。首先,您必須在該Classes密鑰下創建一個類似「sourcecode」的文件類型,其中shell\open\command鍵具有要打開Vim的確切命令,使用%1代替要傳入的文件名。然後創建一個關聯鍵,如.c您創建的文件類型的值,在這種情況下是「源代碼」。

的文件關聯這裏的一些細節:http://vim.wikia.com/wiki/Windows_file_associations

專供「標籤中推出」行爲設置,你想--remote-製表沉默,在這裏完成:http://vim.wikia.com/wiki/Launch_files_in_new_tabs_under_Windows

+0

我試圖通過在cmd中編寫這個命令: 'ftype code =「C:\ Program Files \ Vim \ vim72 \ gvim.exe「--remote-tab-silent」%1;「 assoc .c = code; assoc .c = code; assoc .h = code;' 但它不起作用...路徑是正確的。然後我嘗試打開一些.c或.h文件,並打開2個不同的窗口。 – user2957378

+0

我設法做到這一點,這要感謝這個程序:http://defaultprogramseditor.com/ – user2957378

+0

它可能已經有一些其他方法的用戶特定的映射,這將使ftype和assoc命令不會爲您的用戶名做任何事情。流浪也是可能的;裏面的引號干擾,你可以擺脫這一點。我假設你爲此做了3個單獨的命令?我沒有在Windows 7上試過ftype和assoc來告訴你實情,因爲在我使用Windows 7之前,我一直在使用用戶特定的註冊表區域。我很高興你找到了解決方案。 – Ben

0

Vim有一個 「遠程服務器」 的概念,它允許你在單/ vim的某些實例中打開文件。

vim的手冊頁(help doc too::h remote)有說明。總之:

vim --serverlist      #list names of all found vim servers 
vim --servername {name}    #current instance becomes as server named {name} 
vim --servername {name} --remote file #open file in {name} vim-server 

,您仍然可以發送鍵遙控VIM,當--remote-send或命令... --remote +{cmd} file

您的需求緩衝負載,要在Vim服務器的標籤頁中打開文件,您可以:

vim --servername FOO --remote-tab yourfile 
+0

只是覺得應該鏈接到它的在線參考:http://vimdoc.sourceforge.net/htmldoc/remote.html –

相關問題