Visual Studio2008 是一个功能强大的集成开发环境,但是默认情况下,它总是启动本地的MSDN搜索,即使本地计算机上没有安装MSDN。为了解决这个问题,可以通过编写宏来实现在IDE内部调用Google搜索、Stack Overflow搜索、searchdotnet搜索和MSDN搜索。以下是配置步骤的详细说明。
在Visual Studio2008 IDE中,按下Alt + F8键启动宏浏览器。它应该在IDE的右侧显示一个树状结构。
右键点击"MyMacros"项目,创建一个名为"Search"的新模块。(或者,可以通过Tools菜单-> Macros -> New Macro命令来创建)。这将启动宏编辑器。
在宏编辑器中复制并粘贴以下代码。(代码来源于Brian Schmitt关于BetterVisual StudioF1的文章)
VB.NET
Imports EnvDTE
Imports System.Web
Public Module Search
#Region "Search Internet Sites"
Public Const GOOGLE_FORMAT As String = "www.google.com/search?q={0}"
Public Const STACKOVERFLOW_FORMAT As String = "http://www.stackoverflow.com/search?q={0}"
Public Const SEARCHDOTNET_FORMAT As String = "http://searchdotnet.com/results.aspx?cx=002213837942349435108:jki1okx03jq&q={0}&sa=Search&cof=FORID:9#1144"
Public Const MSDN_FORMAT As String = "http://social.msdn.microsoft.com/Search/en-US/?query={0}∾=8"
Public Sub SearchStackOverflowForSelectedText()
SearchWebPage(STACKOVERFLOW_FORMAT)
End Sub
Public Sub SearchGoogleForSelectedText()
SearchWebPage(GOOGLE_FORMAT)
End Sub
Public Sub SearchSearchDotNetForSelectedText()
SearchWebPage(SEARCHDOTNET_FORMAT)
End Sub
Public Sub SearchMSDNForSelectedText()
SearchWebPage(MSDN_FORMAT)
End Sub
Private Sub SearchWebPage(ByVal SearchURLFormat As String)
Dim sel As EnvDTE.TextSelection = DTE.ActiveWindow.Selection
Dim srchTxt As String = sel.Text.Trim
If srchTxt.Length > 0 Then
DTE.ItemOperations.Navigate(String.Format(SearchURLFormat, HttpUtility.UrlEncode(srchTxt)))
End If
End Sub
#End Region
End Module
现在宏已经准备好了(为Google、Stack Overflow、searchdotnet和MSDN各创建了一个宏)。接下来将为这四个宏分配快捷键。
转到Tools -> Options -> keyboard。在“Show command containing”中输入macro,或者简单地滚动列表框找到刚刚创建的宏。
在“Press shortcut key”中输入想要的快捷键(例如Alt + F1,Alt + Shift + F1)。请注意,如果只按F1,它将替换F1键的现有绑定到MSDN帮助。