我想在代码中选择一个表达式并输入Ctrl + Whatever
所以它与[Ctrl + Shift + F和点击“全部查找”]
编辑:[Ctrl + Shift + F并按Enter键]可能比点击更快但我还想要更具体,更快的东西
备注:我对查找所有引用快捷方式不感兴趣。
答案 0 :(得分:8)
您可以使用宏。我在VS2010中记录并修改了一个:
Sub FindAllFiles()
DTE.Find.FindWhat = DTE.ActiveDocument.Selection.ToString()
DTE.Find.Target = vsFindTarget.vsFindTargetFiles
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
DTE.Find.SearchPath = "Entire Solution"
DTE.Find.SearchSubfolders = True
DTE.Find.FilesOfType = ""
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResults1
DTE.Find.Action = vsFindAction.vsFindActionFindAll
If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
Throw New System.Exception("vsFindResultNotFound")
End If
End Sub
可以将宏设置为键盘快捷键。请参阅:http://msdn.microsoft.com/en-us/library/a0003t62(v=vs.80).aspx
答案 1 :(得分:3)
不是我会意识到这一点。 Ctrl+Shift+F + ENTER
(输入而非点击“全部查找”)可能是最接近的。如果你是一个触摸打字员,它就像一条捷径一样快。
<强>更新强>
现在,问题已经改变,我的回答再也没有意义了。使用像Fosco这样的宏来回答它。
答案 2 :(得分:0)
我有一个像@Fosco一样使用的宏。
' Members for the search methods
Private matchCase As Boolean = True
Private searchWindowOne As Boolean = False
Public Sub SearchFiles(ByVal fileTypes As String, ByVal searchPath As String)
searchWindowOne = Not searchWindowOne
DTE.Find.Target = vsFindTarget.vsFindTargetFiles
DTE.Find.MatchCase = matchCase
DTE.Find.MatchWholeWord = matchWholeWord
matchCase = True
matchWholeWord = True
DTE.Find.MatchInHiddenText = True
DTE.Find.Action = vsFindAction.vsFindActionFindAll
DTE.Find.SearchPath = searchPath
If (searchWindowOne) Then
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResults1
Else
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResults2
End If
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
DTE.Find.SearchSubfolders = True
DTE.Find.FilesOfType = fileTypes
DTE.Find.FindWhat = GetClipboard()
If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
Throw New System.Exception("vsFindResultNotFound")
End If
End Sub
Public Sub ChangeMatchCase()
matchCase = False
matchWholeWord = False
End Sub
它为原始方法增加了一点灵活性。 其中一个好处是搜索两个查找窗口交替。 这意味着您始终可以访问最后两次搜索。 当然,这不能用于直接映射到快捷方式,但它允许这样做:
Sub SearchInProject()
SearchFiles("*.*", "Current Project")
End Sub
Sub SearchInCode()
SearchFiles("*.h;*.cpp", "Entire Solution")
End Sub
......等等。然后可以将这些映射到快捷方式并允许真正的一键搜索。
您可能已经注意到我为匹配大小写添加了一个开关,可以由宏ChangeMatchCase
激活以进行下一次搜索。
在我的设置中,我将不同的搜索映射到双键击。
因此,Ctrl+F,Ctrl+G
全局搜索,Ctrl+F,Ctrl+D
项目中的搜索,...您明白了。对于以Ctrl+D,
开头的所有调试内容,我都有类似的映射。
这可能是我过去几年中最重要的一次性能提升。