我们在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标签页中打开该文件了。