Windows中,在Vim标签页中打开文件[转]
我们在windows中使用vim时,经常会通过右键菜单选择“Edit with Vim”来打开文件。但这种方式打开的文件,会在新建窗口中打开,而不是像Ultra Edit那样在一个新的标签页中打开。
VIM 7.0已经支持标签页了,怎样在打开文件时新建一个标签而不是新建窗口呢?下面的VBScript通过修改注册表的方式实现了该功能。不用担心,不会破坏你的注册表。
把下面的内容保存到一个文件中,取名为vim.vbs:
Option Explicit ' 强制显示声明变量。
On Error Resume Next ' 不处理错误
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"OpenWithList"gvim.exe""
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"shellex"ContextMenuHandlers"gvim""
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"Shell"用&Vim编辑""
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"Shell"Edit with Vim""
Dim gvimpath
gvimpath = WSHShell.RegRead("HKEY_LOCAL_MACHINE"SOFTWARE"Vim"Gvim"path")
WSHShell.RegWrite "HKEY_CLASSES_ROOT"*"Shell"Edit with Vim"","With Vim(&F)"
WSHShell.RegWrite "HKEY_CLASSES_ROOT"*"Shell"Edit with Vim"command"",_
Chr(34) + gvimpath + Chr(34) +" -p --remote-tab-silent " +_
Chr(34) + "%1" + Chr(34) , "REG_SZ"
On Error Resume Next ' 不处理错误
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"OpenWithList"gvim.exe""
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"shellex"ContextMenuHandlers"gvim""
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"Shell"用&Vim编辑""
WSHShell.RegDelete "HKEY_CLASSES_ROOT"*"Shell"Edit with Vim""
Dim gvimpath
gvimpath = WSHShell.RegRead("HKEY_LOCAL_MACHINE"SOFTWARE"Vim"Gvim"path")
WSHShell.RegWrite "HKEY_CLASSES_ROOT"*"Shell"Edit with Vim"","With Vim(&F)"
WSHShell.RegWrite "HKEY_CLASSES_ROOT"*"Shell"Edit with Vim"command"",_
Chr(34) + gvimpath + Chr(34) +" -p --remote-tab-silent " +_
Chr(34) + "%1" + Chr(34) , "REG_SZ"
接下来用鼠标双击vim.vbs文件。
OK,现在你用鼠标右键点击想打开的文件,看到“用Vim编辑”项了吗?选中此项,就会在一个新的Vim标签页中打开该文件了。