我们在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编辑\command\"
Dim gvimpath
gvimpath = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Vim\Gvim\path")
WSHShell.RegWrite "HKEY_CLASSES_ROOT\*\Shell\用&Vim编辑\command\",_
Chr(34) + gvimpath + Chr(34) +" -p --remote-tab-silent " +_
Chr(34) + "%1" + Chr(34) +_
Chr(34) + " %*" + 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编辑\command\"
Dim gvimpath
gvimpath = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Vim\Gvim\path")
WSHShell.RegWrite "HKEY_CLASSES_ROOT\*\Shell\用&Vim编辑\command\",_
Chr(34) + gvimpath + Chr(34) +" -p --remote-tab-silent " +_
Chr(34) + "%1" + Chr(34) +_
Chr(34) + " %*" + Chr(34), "REG_SZ"
接下来用鼠标双击vim.vbs文件。
OK,现在你用鼠标右键点击想打开的文件,看到“用Vim编辑”项了吗?选中此项,就会在一个新的Vim标签页中打开该文件了。
此方法在win2K+vim7.1中通过,估计winxp中也没问题。
希望对你有用^-^。