Visual Studio(2005-2010)的隐藏功能?


182

Visual Studio是一个如此庞大的产品,即使使用了多年,我有时还是会偶然发现一种新的,更好的方式来做事情或什至是我所不知道的事情。

例如-

  • Crtl+ RCtrl+ W显示空白。对于编辑Python构建脚本至关重要。

  • 在“ "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" 名称为Guides的字符串,其值为“ RGB(255,0,0),80”的文本下,在文本编辑器的第80列有一条红线。

您还偶然发现了哪些其他隐藏功能?


谢谢!最后是VS中的80列标记:)
Jonas Gulle 2010年

谢谢。实际上,我偶然偶然发现了“显示空白”,并希望摆脱它。非常感谢!
Arsen Zahray 2012年

Answers:


123

按下ALT进行选择-选择文本的正方形而不是整行。


9
Ctrl-Alt将选择整个单词。Alt将一次将选择区域的大小更改一个字符。
firedfly

4
这也适用于MS Word和OO Writer。我已经用了很多。
巴德

3
此选项(称为“块选择”)也可通过键盘按住alt + shift的方式使用,然后使用箭头键。
2009年

1
另外,如果您以这种方式选择一个空的水平列,则您键入的任何内容都会在每行上重复,就像一个巨大的光标一样:)
Sedat Kapanoglu,2010年

1
我看到它是作为VS 2010的功能出售的,但我只是在VS 2008中尝试了一下,并且效果很好。我很惊讶 这是非常有用的!
DaveDev 2010年

95

追踪点!

在一行代码上放置一个断点。打开“断点”窗口,然后右键单击新的断点。选择“当命中...”。通过选中“打印消息”复选框,Visual Studio将在每次执行代码行时(而不是(同时)中断)将消息输出到Debug Output。您还可以通过它来执行宏。


1
我知道我迟到了游戏,但是那是我从来不知道的很棒的功能!
杰里

7
要加分,您可以在点击按钮时进行局部变量赋值。{localVariable = 1.0f}或将值增加{staticVariable + = 0.1f}
查尔斯·比蒂

91

您可以将代码拖动到工具箱。试试吧!


圣洁废话,你可以!(谢谢!)
Ali Parr

似乎没有超过片段,虽然没什么用
JK。

33
亲爱的上帝...这是复制和粘贴的全新境界。复制并粘贴粘贴粘贴。我认识很多程序员,我希望他们永远不会发现您可以做到这一点。
瑞安·伦迪

如果您可以在单击按钮时告诉它评估代码(如小书签),那就太好了。
直觉

不好了。这个混蛋功能在做什么!

79

单击一个标识符(类名,变量等),然后单击F12“转到定义”。我总是惊讶地看到有多少人使用较慢的右键单击->“转到定义”方法。

编辑:然后您可以使用Ctrl+ -跳回到您所在的位置。


8
并且不要忘了Ctrl + Shift +-[control shift minus]向前跳!
凯文·普林

5
和Shift F12键以查找所有参考
Benjol

2
您还可以使用ALT +向左箭头返回到您所在的地方
arolson101

1
使用VB键设置,Shift-F2也会执行“转到定义”。
Ryan Lundy

1
如果首先要使用鼠标路线,也可以右键单击G。
tsilb 2010年

57

CTRL + SHIFT + V将在剪贴板中循环,Visual Studio保留副本的历史记录。


可以在键盘映射中的edit.cycleclipboardring中找到它(在Visual C ++中,这是Ctrl-Shift-Insert,而不是Ctrl-Shift-V)
默认2010年

52

萨拉·福特(Sara Ford)涵盖了许多可爱的提示:http : //blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

但是我最喜欢的是代码片段,Ctrl+ .用于添加using<Namespace>或生成方法存根。我不能没有那个。

在Visual Studio 2008 C#绑定海报中查看一个不错的列表:http : //www.microsoft.com/downloadS/details.aspx? familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en


1
萨拉·福特(Sara Ford)是Visual Studio的女神。我不能推荐她。
克里斯·查拉巴鲁克

我完全同意我为什么分享她的作品。我真的很喜欢她当前的系列文章,其中涉及调试
Aaron Powell

遗憾的是,她放弃了一天的小事,尽管自从与VS的内行人合作以来已经很久了,她完全可以继续前进是完全可以理解的……
Knobloch

感谢您提及CTRL +。我正是在寻找这个。
2009年

我一直在使用CTRL + ALT + F10。不知道CTRL +。做同样的事情-谢谢。舒适得多。
Noam Gal的

49
CTRL-K, CTRL-D

重新格式化文件!
这是在VB键绑定下的,不确定C#


3
是的,在一定程度上可以使用C#,Web Designer,XML编辑器,CSS编辑器,XSD编辑器,JavaScript。大多数受支持的文件类型
Aaron Powell

8
Ctrk-K,Ctrl-F for C ++
MSalters

7
我使用Ctrl-E,Ctrl-D
配置程序,

Ctrl + K,Ctrl + F还会格式化您选择的任何文本(在C#中,不确定其他文本)。
Zann Anderson

43

您要在快速监视表或监视窗口中调试数组几次,并且只让Visual Studio向您显示第一个元素?在定义的末尾添加“,N”,以使Studio也向您显示接下来的N个项目。IE“ this-> m_myArray”变为“ this-> m_array,5”。


41

增量搜索:在打开源文档的同时,按(CTRL + I)并键入要搜索的单词,然后再次按(CTRL + I)即可查看与您的输入匹配的单词。


4
称为“> i <增量搜索”。
康斯坦丁

与Firefox实现的> ex <cremental搜索相反。
kibibu

来自Emacs世界,这是我寻找的第一个功能。:)
JesperE 2011年

37

您可以在监视窗口中使用以下代码。

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception

35
  • Ctrl-K,Ctrl-C//开头注释文本块
  • Ctrl-K,Ctrl-U取消注释以//开头的文本块

没有它就无法生存!:)


在VB.NET中也是如此,但用'而不是//
ChrisA

在SQL Server Management Studio中也是如此,只是使用SQL注释转义序列“-”
Thomas Bratt,

3
我一直希望您能切换评论?您为什么要对某事“加倍评论”?当然,再按一次就可以取消注释…
Dan Diplo 2009年

16
有时您想注释整个函数,并且其中的某些行已被注释(即它们是正确的注释)。在这种情况下,如果有一个切换键,该怎么办并不明显,因此通常最好使决定明确。
帕维尔米纳夫

1
请注意,如果您从文本的开头而不是行的开头开始,则会得到/ * * /而不是//。这是我最常用的功能
默认

25

阻止调试器进入琐碎的功能。

在调试器中单步执行代码时,可以花很多时间步入和退出您不特别感兴趣的功能,例如GetID()或std :: vector <>()等名称,选择一个C ++示例。您可以使用注册表使调试器忽略这些。

对于Visual Studio 2005,您必须转到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver,并为每个要排除的函数或函数集添加包含正则表达式的字符串值。例如

std :: vector。* ::。*
TextBox :: GetID

您也可以针对个别例外覆盖这些。例如,假设您确实想进入向量类的析构函数:

std :: vector。* :: \〜。* = StepInto

您可以在http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx中找到其他版本的Visual Studio的详细信息。


哇,太棒了 我不知道这是可能的。
j_random_hacker

23

Ctrl-F10:在调试期间运行到光标。我花了很长时间才找到它,并且我一直都在使用它。

Ctrl-E,Ctrl-D:应用标准格式(可以定义)。


1
Ctrl + Shift + F10跳过所有代码并运行到光标。尝试测试特定代码行时的技巧。
塞缪尔·斯莱德

23

TAB键功能

  1. 如果您知道代码片段的键名,请编写并单击双Tab。例如:写

    foreach

然后单击两次Tab键以

foreach (object var in collection_to_loop)
{

}

2.如果您编写任何事件,请在此处编写

        Button btn = new Button();
        btn.Click +=         

然后单击两次Tab键以

private void Form1_Load(object sender, EventArgs e)
{
        Button btn = new Button();
        btn.Click += new EventHandler(btn_Click);     
}    
void btn_Click(object sender, EventArgs e)
{
        throw new Exception("The method or operation is not implemented.");
}

btn_Click函数自动写入

  1. 在XAML编辑器中,编写任何事件。例如:

MouseLeftButtonDown然后单击选项卡,
MouseLeftButtonDown=""然后MouseLeftButtonDown="Button_MouseLeftButtonDown"Button_MouseLeftButtonDown创建的代码部分方法中再次单击选项卡 。


21

萨拉·福特(Sara Ford)使这个市场陷入困境。

http://blogs.msdn.com/saraford/default.aspx

更多的Visual Studio技巧和窍门远不止于此。

其他一些:

  • Visual Studio 2005和2008 3个月试用版具有全部功能,可以通过在打开VS之前将系统时钟重新设置为无限期(永久使用)。然后,当VS打开时,再次将系统时钟设置为向前,这样您的日期时间就不会搞砸了。
  • 但这确实是盗版,我不推荐这样做,尤其是当任何拥有.edu地址的人都可以通过Microsoft Dreamspark获得VS2008的全功能专业版时。
  • 您可以使用Visual Studio打开第三方可执行文件,并浏览其中存储的嵌入式资源(对话框,字符串表,图像等)。
  • 调试可视化工具并不是完全“隐藏”的功能,但是它们被忽略了,而且非常有用,因为除了使用提供的可视化工具之外,您还可以自己滚动针对特定的数据集工具。
  • 调试器的“设置指令指针”或“设置下一条语句”命令。
  • 条件断点(如KiwiBastard所述)。
  • 您可以使用Quickwatch等来不仅评估变量的值,还可以评估该变量周围的运行时表达式。

3
如果真的是盗版(我同意你的意思),那你为什么还要提起呢?
Ryan Lundy

1
Kyralessa,因为有些人可能不在乎。但是,由于Express版本是免费的,所以我怀疑当今存在使用盗版VS版本的实际原因。
乔伊


17

自定义IntelliSense下拉高度,例如显示50个项目,而不是IMO的默认值,这太小了(8)。

(为此,只需在下次看到下拉菜单时调整其大小,Visual Studio就会在下次打开下拉菜单时记住您选择的大小。)


4
您无法在VS2010中重新调整它的大小,这使我烦恼不已。
manixrock 2010年

在Vs2008中,我可以更改宽度,但不能更改高度。
卡皮尔

16

今天发现:

Ctrl + .

调出用于重构的上下文菜单(然后可以通过您刚刚重命名的类/方法/属性的带下划线的下一个字母访问该菜单-将鼠标悬停在菜单上或单击“ Ctrl” +“。”。)


Alt + Shift + F10也会执行此操作(使用C#键绑定)
Kyle Trauberman's

4
比在这种情况下尝试搜寻微小的鼠标单击目标要好得多
Richard Ev

14

很多人不了解或无法充分利用调试器-IE只是使用它来停止代码,但是右键单击红色圆圈,还有更多选择,例如条件中断,中断运行代码。

另外,您还可以在运行时使用调试器更改变量值,这是一个很棒的功能-保存重新运行的代码以修复愚蠢的逻辑错误等。


13

换行,Shift-Alt-T
交换两行(当前和下一行),然后将光标移至下一行。我就喜欢。我什至编写了一个宏,该宏再次将位置更改为一行,执行行转置并再次更改了行位置,因此它们看起来就像我将当前行与上一个交换(反向行转置)一样。

单词转置,Shift-Ctrl-T


这使行在页面上向下移动,如何使行在页面上向上移动?
Alex Baranosky 09年

GordonG,我写了以下宏:Sub ReverseLineTranspose()DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand(“ Edit.LineTranspose”)DTE.ActiveDocument.Selection.LineUp End Sub
okutane

1
事实证明,可以在这里使用它:)
Benjol,


11

FormsDesigner中的文档大纲CTRL + ALT + T

快速控制重命名,订购等功能!


我不敢相信我对此一无所知。我的生活改变了。
HipsterZipster

11

用解决方案资源管理器自动同步当前文件。因此,不必查看文件在项目结构中的位置

工具->选项->项目和解决方案->“在解决方案资源管理器中跟踪活动项”

编辑:如果这对您来说太烦人了,那么您可以使用Dan Vanderboom的宏通过按键按需调用此功能。

(注意:摘自杰里下面的评论)。


3
过了一会儿,这很烦人。我希望有一个键盘快捷键可以按需执行此操作。
kenwarner

2
这是有关如何按需跟踪的文章。dvanderboom.wordpress.com/2008/03/21/…– 2009
杰里

如果您打开了许多文件,则执行“关闭所有内容,但关闭所有内容”(我认为是从PowerCommands开始)会杀死VS(无警告)。
Benjol

Resharper使得这种冗余成为必要,因为您可以执行Shift + Alt + L组合键直接跳转到解决方案资源管理器中的当前文件;或Ctrl + Shift + N键以关键字搜索解决方案中的任何文件。
cbp

9

我不确定它是否是“隐藏的”,但是没有多少人知道它- 伪寄存器。调试时非常方便,我一直在监视窗口中输入@ ERR,hr。


1
我听说@xxx正在逐步淘汰$ xxx。FWIW,WinDbg也使用$ xxx形式。
康斯坦丁

您不能只在监视窗口中执行“ hr,hr”吗?我在VC6中一直使用它...
LarryF

优秀的。正如链接文章所建议的那样,在@TIB上设置条件断点将大大简化多线程应用程序的调试。
j_random_hacker


9

我不经常使用它,但是我喜欢:

ctrl-alt + mouse select

要选择矩形块,以“块”边界。

如评论中所述,

alt + mouse select

只做一个普通的矩形块。


4
考虑到这在VS中是有效的动作,投降票是很有趣的。
中午丝绸

2
也许还为时过早,但是阅读本文使我想在Firefox上尝试一下。事实证明,ctrl-alt-shift允许您使用鼠标在屏幕上拖动整个文档,类似于PDF文档的工作方式。
2009年

与alt +鼠标选择有何不同?
加法

古法(Guffa):它仅用于块尾。alt-select可让您选择包含任何内容的任何区域。它们不一样。
中午丝绸

尽管我确实认为它可能只是“ ctrl-alt”,而不是“ shift”。
中午丝绸


8

CTRL + Shift + U->大写突出显示的部分。CTRL + U->小写突出显示的部分,非常适合将我的SQL语句放入字符串查询时看起来恰到好处。

对于在线查找所有内容的代码也很有用。


2
太糟糕了,他们没有一个驼峰按Ctrl + Shift选择... :)这可能是我的#1重构我这样做时,我接手的一个项目...拉里
LarryF

8

鼠标中键单击编辑器选项卡上的,以关闭选项卡。


1
我在编码时一直使用它,因为我先查找代码然后将其关闭(用于关闭的“ X”相当远)。
凯文·德瑞杰

8

要将任何数据块显示为n字节的“数组”,请在Visual Studio的“快速监视”窗口中使用以下语法:

variable, n

例如,要查看名为foo256字节数组的变量,请在“快速监视”窗口中输入以下表达式:

foo, 256

当查看非空终止的字符串或只能通过指针访问的数据时,此功能特别有用。您可以使用Visual Studio的“内存”窗口获得相似的结果,但是使用“快速监视”窗口通常更方便快速检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.