原文发表地址:Search and Navigation Tips/Tricks with Visual Studio
原文发表时间:August 24, 2010 12:24 AM
这是我写的关于VS2010和.NET 4发布的博文系列中的第27篇。
今天的博文将延续上周调试技巧的内容,并涵盖一些在Visual Studio中非常有用的搜索和导航技巧。这些小技巧是我的朋友Scott Cate(在这里发布了很多关于VS的使用)最近推荐给我的,许多Visual Studio开发人员,即使那些资深开发人员,似乎也不了解这些技巧。
如果你们还没有用到他们的话,希望这篇博文可以有所帮助。它们都很容易学会并且可以为你省下不少时间。
Ctrl + i – 渐进式搜索
大多使用Visual Studio的开发人员都很熟悉”查找对话框”——可以通过在IDE中按”Ctrl + F”打开。但是惊奇的是,很多开发者都不熟悉Visual Studio中的”渐进式搜索”功能——它可以让你在不打开对话框的情况下搜索当前文档。
使 用 渐 进 式 搜 索
在编辑器中使用快捷键”Ctrl + i”便可以使用渐进式搜索功能。这将轻微改变你的光标并且会使IDE左下方的状态栏变成”渐进式搜索:(搜索关键字)” – 然后你就可以输入想要查找的关键字,编辑器就会在当前文档中为你进行搜索(不需要打开对话框)。
下面我们用”action”关键字来进行渐进式搜索,然后VS会高亮第一处在文件中出现的”action”。
我们可以再一次按下”Ctrl + i”去搜索下一处出现该关键字的地方(可以不断重复该操作):
按下”Ctrl + Shift + i”会使搜索反向,并且可以跳过回格符。
你可以在任何时候按下”ESC”键来结束渐进式搜索状态。更多的关于渐进式搜索,请查看here
F3 和 Shift+F3 – 用之前的查询关键字查找
还有一个关于渐进式搜索的不错的技巧是在你按下ESC结束搜索后,会将你的查询关键字添加入IDE的搜索堆栈中。你使用的查询关键字会在VS的标准工具栏中的”查找”下拉列表中显示出来:
你可以通过在Visual Studio中按下F3键来重复最后一次的搜索。当你搜索完之后,对代码进行了一些修改,然后你想在当前文档中继续搜索时这个功能是非常有用的。只要按下F3,就可以在当前文档光标处重复上一次的搜索,而不需要重新输入查询关键字。
按下”Shift+F3”将会用最近一次查询关键字执行反向搜索(从编辑器的当前光标所在处)。你可以很方便的使用F3/Shift+F3来切换你的检索方向。
Ctrl + F3 – 用当前选择项来进行搜索
还有一个不错的小技巧就是你可以通过在编辑器中简单地高亮一个单词(或者部分单词)来避免输入查询关键字,然后按下”Ctrl + F3” 来搜索高亮部分在当前文档的下一处使用:
按下”Ctrl + F3”将会搜索下一处你所高亮的字符,而不用输入他们:
象之前一样你也可以选择使用”Ctrl + Shift + F3”来执行反向搜索。
Ctrl + Shift + F – 在解决方案中搜索
有时候你希望在整个解决方案中搜索。
“Ctrl + F”将会打开查找对话框,并且默认会在当前文档中进行查找。”Shift + Ctrl + F”会打开查找对话框并且默认在整个解决方案中搜索:
这样搜索完之后会在IDE中打开”搜索结果”窗口可以让你导航到每个找到的关键字实例去:
你可以在”搜索结果”中双击击每个搜索结果,并且导向到查询关键字所在处。
很多人不知道的一个小窍门是按”F8”或者”Shift + F8”可以导航到下一个/前一个列表中出现的搜索关键字。这可以使你在列表中不用鼠标,并且切换的更快、更容易。
Shift + F12 – 查找使用
大多数使用Visual Studio的开发者都知道如何高亮一个类型然后按F12来”转到定义”。这会打开类/类型的定义,是导航到声明的地方的一个有效方式。
很多开发者并不知道”Shift + F12”, 它可以打开所有使用特定类型的地方。这可以使你快速的知道这个特定类型是如何使用的。只要简单地选中或者将光标移到这个类型并按下”Shift + F12”就可以使用了:
这将打开”搜索符号结果”窗口并且列出在当前解决方案中所有使用特定类型的地方:
象之前所说,你可以使用”F8”和”Shift + F8” 来向前/向后导航到列表中的每个搜索结果。
Ctrl + – 和 Shift + Ctrl + – 向前/向后导航
你是否有导航到另外一个代码文件,查看一些东西然后切换回原文件?比如:你使用F12”转到定义”然后切换回使用它的代码段。
一个很多人不知道的VS的功能是”反向导航”键——“Ctrl +(减号键)”。这可以导向到导航堆栈的前一个文档/位置。
让我们来实践下,试着在Visual Studio中选择一个类型。下面我选中了”IController”接口:
按下F12来导向到他的类型定义。这个操作打开一个含所选类型的源文件的新编辑窗口:
现在要跳回我们原来的地方,按”Ctrl + (减号键)”然后VS就会带我们回到原来所在的地方:
如果你想在导航堆栈中向前移动(此时会把我们导回到ICtronller.cs文件),然后按下”Shift + Ctrl + (减号键)”。
Sara Ford有一篇讲述这个功能的很好的博文,说明了什么时候会有一个新的位置被放入导航堆栈。
Ctrl + Alt + (向下箭头) – 导航到一个打开的文件
如果在IDE中有很多打开的文件,那如何在这些文件中轻松地切换呢?
一个很有用的快捷键是”Ctrl + Alt + (向下箭头)” – 这会在VS中打开一个下拉框,其中列出了所有打开的窗口:
你可以使用箭头来选择你想要导航到的文件-或者干脆输入文件名,Visual Studio会在列表中高亮此文件。比如,上面我输入了”Mo”然后Visual Studio高亮了”ModelBinder.cs”。按下”enter”键会为我导航到那个文件:
这样提供了一个漂亮,简单的方式让你在多个文件中导航而不必使用鼠标,从而可以让你的双手不用离开键盘。记住”Ctrl + (减号)”可以用来定位回你来的地方。
导航,查看调用层次结构(Call Hierarchy)和高亮引用功能
Visual Studio 2010引入了一系列新的代码导航和搜索功能-包括新的”导航”对话框,”查看调用层次结构”功能和高亮引功能。
我之前这里有一篇博客是关于VS 2010的这三个新功能的. 如果你们还没有阅读那篇文章,尝试下那些功能,我极力推荐-他们是非常棒的补充。
编辑器的其他改进
VS2010中还有很多针对编辑器的改进-很多我之前已经发表过相关的博文。这里是我之前发表的一些关于VS2010编辑器方面的博文的链接:
• 改进的C#/VB代码智能感知支持
• 改进的JavaScript代码智能感知支持
• 选择框和多行编辑支持
• ASP.NET,HTML和JavaScipt代码段支持
另外还有一些我在VS 2010 and .NET 4 改进系列中写的其他博文。
总结
以上多数功能其实在Visual Studio之前多个发布版中已经存在了-但是很多开发者并不知道他们。希望这篇博客可以帮助不知道这些功能的人们一个便利的方法来开始了解他们。如果你想要记住这些快捷键的话-把这个VS 2010热键帖子打印出来并且放在你的显示器边上。
想要学习更多更酷的Visual Studio技巧,请订阅Scott Cate 的Visual Studio 技巧博文系列(已经有83个很赞的技巧)。也可以订阅 Sara Ford的博客 –她前几年也有一些很好的技巧。
希望这篇文章有所帮助。
Scott