转自https://blogs.msdn.microsoft.com/scottgu/2011/10/08/visual-studio/
和http://www.cnblogs.com/rond/archive/2012/03/05/2380367.html
谢谢作者~
[原文发表地址] Search and Navigation Tips/Tricks with Visual Studio
[原文发表日期] 2010/8/24 12:24 AM
[转自]http://msdn.microsoft.com/zh-cn/gg232829
这是我写的关于VS2010和.Net4的博客系列的第27篇。
今天的文章继续上星期我的调试技巧文章,并谈谈Visual Studio里比较有用的搜索和浏览的技巧。我的朋友Scott Cate(他写了很多关于VS使用技巧和窍门的博客)最近向我强调了这些很好的技巧,大部分使用VS的开发人员好像不知道这些技巧(即使他们大部分都在产品开发组呆过一阵子)。
如果你还没有使用过这些技巧,希望这篇博文能帮你发现它们。 它们学起来很容易,能帮你节省很多时间。
Ctrl + i渐进搜索
大多数使用Visual Studio的程序员都习惯了在IDE里按“Ctrl + F”键来打开“查找窗口”。但令人惊讶的是,有很多程序员不知道Visual Studio里的“渐进搜索”这个功能。它可以让你在当前文档里进行搜索,而且允许你不用打开对话框就可以搜索。
使用渐进搜索
在编辑器里按“Ctrl + i”即可启用渐进搜索。它会换掉鼠标图标,并将IDE状态栏的左下角改成“渐进式搜索:(搜索关键字)”—你可以键入要搜索的关键字,并且编辑器会从你在源代码的位置开始搜索(不用打开对话框)。
下面我们搜索“action”,VS会在文件里高亮第一次使用到它的地方。
我们可以接着按“Ctrl + i”来搜索下一个用到它的地方(可以重复多次):
按“Ctrl + Shift + i”可以反方向搜索,这样避免回溯。
你可以通过“Esc”键跳出渐进式搜索。这里有关于渐进式搜索更详尽的资料。
F3和Shift + F3 –使用以前的关键字查找
关于渐进式搜索的一个很炫的技巧是,当你按下ESC键退出搜索时,它会将关键字添加到IDE的查找栈里。在VS的标准工具栏上的“查找”下拉框,你可以看到用过的搜索关键字:
在Visual Studio里,按F3键可以让你重复上次的搜索。这在你查找一些东西,改一下代码,然后要从改动过的地方继续搜索的时候非常有用。只要按下F3,你就可以在文档新的位置上重复上次的搜索(例如“action”)—不需要重新键入搜索关键字。
按“Shift + F3”可以使用 上次搜索关键字进行反向搜索(从光标在编辑器的当期位置开始)。你可以很方便地用F3/Shift+F3的组合在文档里向前向后搜索。
Ctrl + F3—搜索当前选择的文本
另外一个搜索技巧是,为了避免键入关键字,你可以在代码编辑器里选中一个单词(或单词的一部分),然后按“Ctrl + F3”来在当前文件搜索下一个用到它的地方:
按“Ctrl +F3”搜索选中文本的下一个实例—这样避免你键入它:
跟前面讲的类似,你可以用“Ctrl + Shift + F3”来进行反向搜索,即从文本里回溯搜索。
Ctrl + Shift + F –在解决方案里搜索
有时你会想在整个解决方案里进行搜索。
“Ctrl + F”打开的查找对话框默认是在当前文档进行搜索。“Ctrl + Shift + 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就会把我们带回原来的地方:
而如果你想要在导航栈里往前走(也就是要回到IController.cs文件),那就按“Shift + Ctrl + (减号键)”。
Sara Ford有一篇不错的文章深入讲解了这个功能,还解释了将新的位置压入导航栈的条件。
Ctrl + Alt +(向下键)–定位一个打开的文件
曾经在IDE里打开了数不清的文件,想要找到一个容易的方法漫步其中?
一个很有用的按键组合就是“Ctrl + Alt + (向下键)”—这时VS会显示一个下拉框并列出所有打开的文件:
你可以使用箭头键来选择要浏览的文件—或者最好开始敲文件名,Visual Studio会为你在列表里高亮它。比如说,上面我敲了“Mo”,Visual Studio高亮“ModelBinder.cs”。按下“Enter”键就会帮我打开那个文件:
这是一个在文件之间很好的、便利的浏览方式,不需要使用鼠标,或者要让你的手离开键盘。另外记住“Ctrl + (减号)”可以让你回到原来的位置。
定位到,调用层次结构和引用高亮功能
Visual Studio 2010提供了一大批新的代码定位和查找功能—包括新的“定位到”对话框,“查看调用层次结构”功能和引用高亮功能:
我在之前的博客里提到了VS 2010这三个新功能。如果你还没有读过这篇文章并体验它们的能量,我非常推荐你去试试—它们是很好的补充。
相信做开发的没有不重视效率的。开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS。能够对一个IDE产生依赖,说明这个IDE确实有它的独特之处。无容置疑,VS是一个非常强大的IDE,它支持多语言编辑。支持C#,VB,C/C++,HTML......它拥有强大的调试编译功能。它让我们不用去记住那些安装,环境变量设置,服务器设置,编译的繁琐过程。高度集成化。凡事有利有弊,在敏捷开发盛行的时代,VS是否值得我们使用是无容置疑的。但是强大的VS也拥有众多的设置,众多的技巧。记住某些小技巧可以让我们更加方便,快捷地使用VS。这是很有必要的。每个人或多或少记住了一些小技巧。但是不可能全部都记住,我们按照我们自己的编程习惯记住一些自己比较常用的就好。
下面是鄙人在编码过程中发现而且比较经常使用的一些小技巧,希望对你有所帮助。
1.行编辑(复制,剪切,删除,交换)
当你在光标停留行使用快捷键Ctrl+C,X,L时,可以复制,剪切,删除整行内容。当然,右键也是可以的。跟平时的复制,剪切,删除就是选中和没选中代码的区别而已。
如果你想交换上下两行,你可以使用快捷键(Shift+Alt+T),前提是光标要停留在上面那一行。替换之后,光标会一直跟随原本的那一行。
2.注释(//TODO:...)
看标题的话,你可能想打我。那个程序员不知道注释啊,不就//或者/*.....*/亦或者(HTML/XML注释)。但是使用过
// TODO:注释部分
的,估计是少数吧。如果你喜欢用“任务列表”记录一些要做的事情,这个小功能最适合你了。你可以再VS 2010的菜单上找到任务列表窗,点击“菜单->视图->任务列表”,你也可以点击快捷键“Ctrl+W,T”。VS还提供了,HACK,UNTODU,UnresolvedMergeConflict标记注释,你可以在“工具->选项->环境->任务列表”找到并且编辑/添加/删除标记注释。下面是图示:
3.创建区域(#region和#endregion)
当代码越来越多的时候,你会期望可以隐藏一些代码,而#region和#endregion 就是这样的功能。你可以在任何位置隐藏任何代码。即使是隐藏的内容不属于同一个函数。你可以点击#region旁边的+/-,展开/隐藏代码。在隐藏的时候,当你的光标放放置在备注上面的时候,VS会显示出隐藏的代码内容。(听说VB.net使用的时候只可以写在方法外面,不能写在里面。因为本人没写过VB,所以可能在这方面会误导到大家,谢谢网友@天生俪姿 的提醒)
4.选择一个单词/选择一个字符串
如你所知双击一个单词的时候会选择整个单词。按住Ctrl键单击单词的任意位置同样可以选中单词。
双击字符串第一个引号的左侧可以选中整个字符串。按住Ctrl键单击第一个引号的前面同样可以选中整个字符串。
5.将代码放入工具箱
工具箱是拿来放控件的地方。我们在使用控件的时候,只需要从控件当中拖动控件到代码就可以了,这样可以省去大量代码的编辑工作。既然工具箱如此方便,那么是否可以将一段重用性很高的代码放入工具箱呢。答案当然是可以的。
你可以选中你的代码,然后拖入工具箱的空白处,你的代码就保存到工具箱了。就像你将控件拖入代码页面一样,也可以将代码拖入工具箱中。以后你就可以像使用控件一样使用重用的代码。这是非常方便的。而且工具箱的内容不会因为你关闭VS而消失,在你下次打开VS的时候工具箱同样保存了你的代码。如果你需要查看工具箱保存的代码而又不想拖到代码页面中,你只需要将光标停留在工具箱的代码图标上面。如图所示:
6.格式化代码
这个很重要,即使VS在你每次打完“;”回车之后会自动格式化代码。但是难免代码的格式会有所变化,譬如粘贴一段代码之后,代码的格式往往会受到影响。所以,这个还是很有必要知道的。
格式化部分代码:选中代码->Ctrl+K,F。或者Ctrl+E,F。
格式化整个文档:编辑->高级->设置文档的格式。或者 Ctrl+K,D。或者Ctrl+E,D。
7.切换设计/代码图示
在ASP.NET页面切换(HTML): Ctrl+PgUp/Ctrl+PgDn
在windows窗体切换:F7/Shift+F7 (代码/设计)
8.查找错误代码。
当错误列表有错误或者警告提示时,你可以双击这个错误或提示,就可以跳转到错误或警告的语句前。
9.跳转到指定行号
如果代码很多的时候,这是很有用的。在ASP.NET编程的时候,很多错误只有在运行网站的时候才能发现,而这个错误又没被在错误列表提示的时候,你就可以使用这个小技巧跳到错误的代码前面。
双击右下角状态栏的行号,会跳出一个行号跳转窗体。或者快捷键Ctrl+G调出窗体。当然,还可以从菜单栏点击“编辑->跳转..”使用这个功能。
10.快速查找
光标停留在需要查找的词上面,使用快捷键Ctrl+F3可以跳转到下一个相同的词。按Shift+F3可以往上查找。
11.查找“{/}”
查找:你是否很烦恼有些对应的标记找的到头找不到尾,找得到尾不知道那个是头。当你把光标放在“{”的前面,VS会将相对应的”}“标记起来。你也可以将光标停留在“}”的后面,可以达到同样的效果。
12.查找和替换
当你想查找/替换掉某个字符串的时候,你可以按快捷键“Ctrl+F”或者“Ctrl+H”,进行这一操作。另外VS支持正则表达式和通配符。
如果你想从整个项目进行查找/替换,你需要使用快捷键“Ctrl+Shift+F”或者“Ctrl+Shift+H”。当然这一切都可以在菜单栏找到。“编辑->查找和替换”。当你想中止全局替换的时候,你可以使用快捷键“Ctrl+Pause Break”。
13. 书签
书签是很有用的功能,用过Chrome的都知道。在VS当中,书签同样适用。它可以帮你保存位置,以便你写代码。
放置书签:Ctrl+B,T。
上一个书签:Ctrl+B,P。
下一个书签:Ctrl+B,N。
删除所有书签:Ctrl+K,C。(居然打错了,对不起,谢谢@河蟹社会 提醒),正确的是Ctrl+B,C。
除此之外,VS还提供了其它的书签操作。
14.跳转到定义
当你查看代码的时候,往往需要去查看原函数,这是难免的。但是千万不要去手动寻找函数。这效率往往是很低的。你可以右键该函数,选择跳转到定义即可。当然你也可以使用快捷键F12。
15.以文本形式插入外部文本
“菜单->编辑->将文件作为文本插入”
好处是,你不需要打开文件去复制粘贴。
或许这些小技巧你早就知道了。亦或是,你觉得这些技巧根本没啥用。当然,我们最主要的任务还是去编码而已。没有必要将心思花在这上面。但是,当你习惯使用这些小技巧的时候,这为你带来的收益觉得不会让你有所失望的。有些技巧,个人认为还是很有必要掌握的。
总之,捡你想捡的吧,让其他人折腾去吧。