Visual Studio的奇淫技巧,你知道多少?
如果你像我一样,或许你也沉迷于开发者工具。这就是我喜欢 Visual Studio 的原因之一——它有无数的生产力技巧。
这篇文章将展示五个这样的技巧,这些技巧对我每天的工作都有帮助。请注意,这些仅适用于 Visual Studio。有像ReSharper[1]、Roslynator[2]和OzCode[3]这样的扩展可以增加大量的生产力价值,但这是另一篇博文。
1. 代码片段
Visual Studio 允许您快速创建常见的代码片段。这可能是一个for
循环、一个try..catch
子句或一个using
语句。要使用它,只需输入代码片段的快捷方式。for
例如,对于语句,开始输入for
。
![null](https://filescdn.proginn.com/de2759a8a9202269479b54373889f009/e268bc8ac0bb45ce337083d19c9ebf58.webp)
IntelliSense 显示有三个适合的片段for
(前三个项目)。要使用其中之一,只需点击Tab
两次,VS 就会生成样板代码。
![null](https://filescdn.proginn.com/e1d8fee1c7d5c0dd5af1cd4d8211d598/f63681caf590325e55a7aa05267a7a79.webp)
现在您可以编辑突出显示的部分。点击Tab
以在它们之间切换,Enter
或Esc
在完成时切换。
有几十个开箱即用的片段。他们之中有一些是:
•try
•foreach
•if/else
•do
一do..while
环•propdp
对于依赖属性
甚至还有代码块的片段。例如,您可以用一个try..catch
片段包围一个块。
![null](https://filescdn.proginn.com/2104748b24b13d6594d5ba524b7b365a/61d7617cd3cbe7b9a808f08f49ce05d4.webp)
2. 来自未导入命名空间的 IntelliSense 项
您是否曾经觉得 ReSharper 的 IntelliSense 比 Visual Studio 的更好?那是因为 ReSharper 已经做了很多 VS 没有的聪明的事情。不过,Visual Studio 正在迎头赶上。最近添加的是从未导入的命名空间选项添加项目。它是角落里的“+”按钮。
![null](https://filescdn.proginn.com/83b7bbbef38fd6ffaf47e92a696cbc31/32195a19c2e21a1a8d63f437ff1478f7.webp)
当您开始编写某些内容时,Visual Studio 会显示仅来自using
当前文件中添加(带有)的命名空间的自动完成选项。你可以想象这是非常有限的。您真正想要的是查看所有可用选项并让 IDE 导入正确的命名空间。这正是这个按钮的作用。当点击或使用Alt + A
快捷方式时,您将看到来自项目所有可用命名空间甚至其引用的项目:
![null](https://filescdn.proginn.com/2c0590b6886ecd975e7e29603e7cc8c3/3b91dcd716b7ac33fef89ed57449c42b.webp)
3. 快速操作和重构
Visual Studio 包括许多自动重构和代码生成功能。嗯,没有ReSharper[4]那么多,但您会感到惊讶。其中大部分都可以从Quick Actions and Refactorings菜单访问,该菜单可通过Ctrl + .
快捷方式访问。只需将插入符号放在类上,然后点击快捷方式。你会看到一堆有用的选项:
![null](https://filescdn.proginn.com/2c0590b6886ecd975e7e29603e7cc8c3/3b91dcd716b7ac33fef89ed57449c42b.webp)
例如,如果您选择一个代码块,您通常能够将其提取到一个方法或一个本地函数中。
![null](https://filescdn.proginn.com/f11f5298a6c66f8971bb00ec68d3118f/cfe7d4047643a57e6333d00eb72422a2.webp)
这些有很多。要发现它们,每当您站在某物上方时,请查找“快速操作”按钮:
![null](https://filescdn.proginn.com/0afc779df9e7c07a49c2d2a263180154/9bfef2562ff6f11c0645e92834a99680.webp)
如果您使用的是 ReSharper,您可能会看到一个灯泡【译者注:更像一个起子(改锥)】按钮,显示 ReSharper 的重构。点击该灯泡将在同一上下文菜单中显示来自 ReSharper 和 Visual Studio 的操作。
4. 在解决方案资源管理器中跟踪活动项目或不跟踪
转到解决方案资源管理器中的当前活动文件非常有用。您可能想要重命名、移动它、查看文件的属性或导航到附近的文件。不管它是什么,您最不想做的就是在解决方案的项目树中手动搜索它。
多年来,我一直在使用Track Active Item选项。启用后,解决方案资源管理器会自动将所选文件更改为您当前正在编辑的任何文件。
![null](https://filescdn.proginn.com/13cb501c3337efd7a924755738cf274a/bb05d3cb97ee8f6b924001f21008be80.webp)
这感觉很有成效,但缺点是在处理一堆文件后,解决方案资源管理器树变得一团糟。一切都被扩展了,不可能找到任何东西。还有一个小的性能影响。所以现在我改变了策略。我发现有一个快捷方式可以根据需要导航到该项目,而不是自动跟踪活动项目。
![null](https://filescdn.proginn.com/c07403baa6c122d5f27edc62180cfe23/f0c0eb9bd39e8596358a2b67d78af69c.webp)
默认快捷方式是Ctrl + [, S
. 我尽量保持默认值。不是最容易记住的,但你会习惯任何事情。
这意味着我的解决方案资源管理器现在保持不变。展开的项目保持展开状态,如果我不进行滚动,则不会滚动任何内容。
5. Ctrl + T 技巧
有很多方法可以在您的解决方案中导航。我最喜欢的方式是Ctrl + T
选项(Edit | Go To | Go To All)。你可以搜索任何你想要的东西,Visual Studio 会找到它。这可能是一个文件、一个类、一个属性、一个字段或一个方法。
![null](https://filescdn.proginn.com/4d371dc8bb5b8e2959df42541ec22467/e8a380d15d75c6276407ebf42f3e6c8e.webp)
这个窗口有一些技巧:
1.常规搜索使用简单的“包含”逻辑。如果文件/类/成员包含搜索输入,您将在搜索结果中看到它。2.对于使用驼峰式(或 PascalCase)拼写的项目,您可以只输入首字母。例如,asdc
会发现AnotherSearchDemoComponent
:
![null](https://filescdn.proginn.com/edc3747a633b5831ae882c2d67dc327b/0da8abafcacd5b9accd95e6c31d16d25.webp)
1.如果您想进一步缩小搜索范围,可以将姓名首字母与部分姓名组合在一起。
![null](https://filescdn.proginn.com/53b044a9f4155a2bae75f889af273f3e/26665479b6b2291ec97fe22fbe76996a.webp)
1.您可以将搜索范围缩小到特定项目类型:•f [search]
只查找文件•r [search]
在最近的文件中查找•t [search]
看类型•m [search]
看起来在成员•# [search]
看符号
诚然,Visual Studio 还可以从 ReSharper 学到更多东西,它还增加了模糊搜索功能。
概括
Visual Studio 是一个强大的工具。你可以每天使用它,哪怕连续十年也可能仍然不知道它的每一个功能。我自己每天都会发现新事物,并且我已经写了一本[5]关于它的书[6]。我还在继续挖掘它的新功能,我相信你也可以。
References
[1]
ReSharper: https://www.jetbrains.com/resharper/[2]
Roslynator: https://github.com/JosefPihrt/Roslynator[3]
OzCode: https://oz-code.com/[4]
ReSharper: https://www.jetbrains.com/resharper/[5]
本: https://practicaldebugging.net/[6]
书: https://practicaldebugging.net/