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

Posted

技术标签:

【中文标题】Visual Studio (2005-2010) 的隐藏功能?【英文标题】:Hidden Features of Visual Studio (2005-2010)? 【发布时间】:2008-09-19 08:10:54 【问题描述】:

Visual Studio 是一个如此庞大的产品,即使在使用它多年后,我有时也会偶然发现一种新的/更好的方法来做事情,或者我什至不知道可能的事情。

例如-

Crtl + R, Ctrl + W 显示空格。对编辑 Python 构建脚本至关重要。

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

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

【问题讨论】:

谢谢!最后是 VS 中的 80 列标记 :) 谢谢。实际上,我偶然发现了“显示空白”,并想摆脱它。非常感谢! 【参考方案1】:

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

【讨论】:

Ctrl-Alt 将选择整个单词。 Alt 一次将选择区域的大小更改一个字符。 这也适用于 MS Word 和 OO Writer。我用过很多次。 这(称为“块选择”)也适用于键盘 - 按住 alt+shift 然后使用箭头键。 此外,如果您以这种方式选择一个空的水平列,您键入的任何内容都会在每一行上重复,表现得像一个巨大的光标:) 我看到这是 sold 作为 VS 2010 的一个功能,但我只是在 VS 2008 中尝试过它并且它有效。我大吃一惊。这非常有用!【参考方案2】:

追踪点!

在一行代码上放置一个断点。调出断点窗口并右键单击新断点。选择“点击时...”。通过勾选“打印消息”复选框,Visual Studio 将在每次执行代码行时向调试输出打印一条消息,而不是(或同时)中断它。您还可以让它在通过行时执行宏。

【讨论】:

我知道我玩游戏迟到了,但这是一个我从来不知道的很棒的功能! 对于额外的点,您可以在点击按钮时进行局部变量分配。 localVariable = 1.0f 或将值增加 staticVariable += 0.1f 【参考方案3】:

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

【讨论】:

天哪,你可以! (谢谢!) 虽然似乎对 sn-ps 没多大用处 亲爱的上帝......这是一个全新的复制粘贴水平。复制粘贴粘贴。我认识很多程序员,我希望他们永远不会发现你能做到这一点。 如果你能告诉它在你点击按钮时评估代码,就像书签一样。 哦,不。这个混蛋函数在做什么!【参考方案4】:

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

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

【讨论】:

别忘了 Ctrl+Shift+- [控制 shift 减号] 向前跳跃! 然后按 F12 查找所有参考文献 您也可以使用 ALT+向左箭头返回您所在的位置 使用 VB 键设置,Shift-F2 也可以执行 Go To Definition。 如果您首先要使用鼠标路线,还不如右键单击 G。【参考方案5】:

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

【讨论】:

这可以在键盘映射的 edit.cycleclipboardring 中找到(在 Visual c++ 中,这是 Ctrl-Shift-Insert,而不是 Ctrl-Shift-V)【参考方案6】:

Sara Ford 介绍了许多可爱的技巧:http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

但我最喜欢的一些是代码片段,Ctrl + . 添加using 或生成方法存根。 没有那个我活不下去。

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

【讨论】:

Sara Ford 是 Visual Studio 的女神。我怎么推荐她都不为过。 完全同意我为什么分享她的作品。我真的很喜欢她目前涵盖调试的系列 很遗憾她不再做当天的小费,尽管她已经很久没有与 VS 的内部人员合作了,所以她需要继续前进是完全可以理解的...... 感谢您提及 CTRL+。我正在寻找这个。 我一直在使用 CTRL+ALT+F10。不知道CTRL+。做同样的事情-谢谢。舒服多了。【参考方案7】:
CTRL-K, CTRL-D

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

【讨论】:

是的,可以在 C#、Web Designer、XML 编辑器、CSS 编辑器、XSD 编辑器、javascript(在一定程度上)下工作。大多数支持的文件类型 Ctrl+K, Ctrl+F 还会格式化您选择的任何文本(在 C# 中,不确定其他文本)。【参考方案8】:

您在快速观察或观察窗口中调试了多少次数组,却只让 Visual Studio 向您显示第一个元素?将“,N”添加到定义的末尾以使工作室也向您显示接下来的 N 项。 IE "this->m_myArray" 变成 "this->m_array,5"。

【讨论】:

【参考方案9】:

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

【讨论】:

它被称为">i 与 >ex 来自 Emacs 世界,这是我寻找的第一个功能。 :)【参考方案10】:

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

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

【讨论】:

【参考方案11】: Ctrl-K, Ctrl-C// 开头的文本块注释 Ctrl-K, Ctrl-U 取消注释以 // 开头的文本块

没有它就活不下去! :)

【讨论】:

在 VB.NET 中也是如此,除了 ' 而不是 // 在 SQL Server Management Studio 中也是如此,除了使用 SQL 注释转义序列 '--' 我一直希望你能切换 cmets?你为什么要“双重评论”?当然再次按下它应该取消评论...... 有时你想注释整个函数,而里面的一些行已经被注释了(即它们是正确的 cmets)。在这种情况下,如果您有一个切换开关,该怎么做并不明显,因此通常最好明确做出决定。 请注意,如果您从文本开头而不是行首开始,您将得到 /* */ 而不是 //。这是我最常用的功能【参考方案12】:

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

当您在调试器中单步执行代码时,您可能会花费大量时间来单步执行您不特别感兴趣的函数,例如 GetID() 或 std::vector (),选择一个 C++ 示例。您可以使用注册表使调试器忽略这些。

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

std::vector.*::.* 文本框::获取ID

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

std::vector.*::\~.*=StepInto

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

【讨论】:

哇,这太棒了。我不知道这是可能的。【参考方案13】:

Ctrl-F10:调试时运行到光标处。我花了很长时间才找到这个,我一直在使用它;

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

【讨论】:

Ctrl+Shift+F10 跳过所有代码并运行到光标处。尝试测试特定的代码行时很漂亮。【参考方案14】:

TAB 键功能

    如果您知道 sn-p 键名,请编写并单击双 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函数自动写入

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

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

【讨论】:

【参考方案15】:

Sara Ford 垄断了这个市场。

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

更多的 Visual Studio 技巧和窍门,你无法动摇。

其他一些:

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

【讨论】:

如果真的是盗版(我同意你的观点),那你为什么还要提呢? Kyralessa,因为有些人可能不在乎。但是,由于 Express 版本是免费的,我怀疑现在是否有使用盗版 VS 版本的实际理由。【参考方案16】:

T4 (Text Template Transformation Toolkit)。 T4 是一个内置于 Visual Studio 中的代码生成器

【讨论】:

注意:不是速成版。 (不过仍然是一个很好的提示。)【参考方案17】:

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

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

【讨论】:

你不能在 VS2010 中再调整它的大小,它让我无所适从。 在 Vs2008 中我可以改变宽度但不能改变高度。【参考方案18】:

今天发现:

Ctrl + .

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

【讨论】:

Alt+Shift+F10 也能做到这一点(使用 C# 键绑定) 在这种情况下比试图寻找微小的鼠标点击目标要好得多【参考方案19】:

很多人不了解或充分利用调试器 - I.E.只是用它来停止代码,但是在红圈上右击还有更多的选项,比如break on condition,run code on break。

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

【讨论】:

【参考方案20】:

行转置,Shift-Alt-T 交换两行(当前行和下一行)并将光标移动到下一行。我就喜欢。我什至编写了一个宏,它再次将位置更改了一行,执行了行转置并再次更改了行位置,所以这一切看起来就像我将当前行与前一行交换(反向行转置)。

单词转置,Shift-Ctrl-T

【讨论】:

这会让行在页面下移,如何让行在页面上移? GordonG,我写了以下宏:Sub ReverseLineTranspose() DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub 原来可以在这里使用它:)【参考方案21】:

开发 C++ 时,Ctrl-F7 只编译当前文件。

【讨论】:

【参考方案22】: FormsDesigner 中的

文档大纲 (CTRL + ALT + T)

快速控件重命名、排序等等!

【讨论】:

我不敢相信我不知道这件事。我的生活改变了。【参考方案23】:

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

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

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

(注:取自 Jerry 下面的评论)。

【讨论】:

这会在一段时间后变得烦人。我希望有一个键盘快捷键可以按需执行此操作。 这是一篇关于如何按需跟踪的帖子。 dvanderboom.wordpress.com/2008/03/21/… 如果您打开了很多文件,如果您执行“关闭除此之外的所有内容”之类的操作(我认为来自 PowerCommands),它可能会杀死 VS(没有警告)。 Resharper 不需要这个,因为您可以使用 Shift+Alt+L 直接跳转到解决方案资源管理器中的当前文件;或 Ctrl+Shift+N 关键字搜索解决方案中的任何文件。【参考方案24】:

我不确定它是否“隐藏”,但知道的人并不多——pseudoregisters。调试时非常方便,我的观察窗口中一直有 @ERR, hr。

【讨论】:

我听说@xxx 正在逐步淘汰,取而代之的是 $xxx。 FWIW,WinDbg 也使用 $xxx 形式。 你不能在监视窗口中执行“hr,hr”吗?我在 VC6 中一直使用它... 优秀。正如链接文章所暗示的,在@TIB 上设置条件断点将大大简化多线程应用程序的调试。【参考方案25】:

Ctrl-Minus,Ctrl-Plus,在您最近去过的地方前后导航(不过,只打开文件)。

【讨论】:

是的,喜欢这些 - 每天都使用它们。 如果您按 F+12 转到定义然后想回到原来的位置,这非常有用。【参考方案26】:

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

ctrl-alt + mouse select

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

如 cmets 中所述,

alt + mouse select

只是一个普通的矩形块。

【讨论】:

投反对票很有趣,因为这是 VS 中的有效动作:) 祝你好运,神秘的仇恨者。 也许有点早,但读到这篇文章让我想在 Firefox 上尝试一下。事实证明,ctrl-alt-shift 允许您使用鼠标在屏幕上拖动整个文档,类似于 PDF 文档的工作方式。 它与 alt + 鼠标选择有何不同? Guffa:它只用于块结尾。 alt-select 让您选择包含任何内容的任何区域。它们是不同的。 虽然我确实认为它可以只是'ctrl-alt',而不是'shift'。【参考方案27】:

这是我学到的东西(对于 C#):

您可以通过按 Control + ] 将光标从右大括号移动到左大括号。

我是在一个被这个问题欺骗的 SO 主题上学到的:

“Hidden Secrets” of the Visual Studio .NET debugger?

【讨论】:

【参考方案28】:

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

对于您在网上找到的所有内容都大写的代码也很有用。

【讨论】:

太糟糕了,他们没有 CamelCase CTRL+Shift 选项... :) 这可能是我在接手一个项目时所做的 #1 重构... Larry【参考方案29】:

鼠标中键单击编辑器选项卡关闭选项卡。

【讨论】:

我在编码时一直使用它,因为我正在查找代码然后关闭它(关闭的“X”相当远)。【参考方案30】:

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

variable, n

例如,要将名为 foo 的变量视为 256 字节数组,请在 QuickWatch 窗口中输入以下表达式:

foo, 256

这在查看非空终止的字符串或只能通过指针访问的数据时特别有用。您可以使用 Visual Studio 的 Memory 窗口来获得类似的结果,但使用 QuickWatch 窗口通常更方便快速检查。

【讨论】:

以上是关于Visual Studio (2005-2010) 的隐藏功能?的主要内容,如果未能解决你的问题,请参考以下文章

无法找到visual studio 2017生成工具

dev文件用visual studio怎么打开

visual studio 2005 图像上 添加 数字

如何利用visual studio2015编写uwp应用

visual studio2017注册表删除

visual studio 如何生成动态库