我搜索并发现了与此相关的线程,但情况并不完全相同。
我在Windows7中使用VIM。它被设置为文本文件的默认编辑器。 问题是,当我点击某个文本文件以打开它时,无论我是否已打开一个或多个VIM窗口,它都会在新的VIM窗口中打开。
如何更改此行为? 谢谢!
更新 这个程序解决了我的问题:http://defaultprogramseditor.com/
答案 0 :(得分:0)
vim有一个“远程服务器”概念,它允许你在单个/某个vim实例中打开文件。
vim的手册页(帮助文档::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
当缓冲区加载--remote-send
或命令... --remote +{cmd} file
根据您的要求,您希望在vim服务器的标签页中打开文件,您可以:
vim --servername FOO --remote-tab yourfile
答案 1 :(得分:0)
您应该在Windows中手动设置文件关联,以使用自定义命令启动Vim。如果您是管理员并且不介意搞乱EVERYBODY的配置,则可以使用cmd.exe shell中的ftype
和assoc
命令。否则,您可以在HKEY_CURRENT_USER\Software\Classes
。
注册表方法实际上设置的结构与使用ftype
和assoc
自动设置的结构相同。首先,您必须在该Classes键下创建类似“sourcecode”的文件类型,shell\open\command
键具有您要打开Vim的确切命令,使用%1
代替要传入的文件名。然后创建一个关联键,如.c
,其值为您创建的文件类型,在本例中为“sourcecode”。
有关文件关联的一些详细信息:http://vim.wikia.com/wiki/Windows_file_associations
专门用于设置“在标签中启动”行为,您需要--remote-tab-silent,如下所示:http://vim.wikia.com/wiki/Launch_files_in_new_tabs_under_Windows