如何利用 Visual Studio 自带工具提高开发效率
Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢?
显示行号
有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位。
如何显示
1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言
2. 勾选 “行号”


避免剪切或复制空白行
有些时候当我们复制了一行数据正打算粘贴到一个空白行的时候,手一抖,V变成了C,结果复制了一条空白行。这会让人很郁闷,当然你可以通过使用 Ctrl + Shift + V 从剪切版中找到之前复制的那一项,但是毕竟这很麻烦。
要避免这种事情发生,你可以通过 Tools / Options / Text Editor / All-languages,然后不要勾选 “Apply Cut or Copy commands to blank lines when there is no selection.” 前面的复选框,就行了。

如果安装了 Productivity Power Tools,并且开启了 Html Copy 这项功能,就会导致上述的设置失效。
使用书签
和平常意义的书签类似,当我们希望在日后某一时刻快速定位到一处代码时使用。比如在项目例会上,你需要演示本周你所做的一些改进,在开会前可以事先在需要演示的几个地方加上书签,这样会议中就可以快速定位到这几处代码,而不需要一个个文件查找。
创建、删除书签 Ctrl + K, Ctrl + K

移动到下一个书签 Ctrl + K, Ctrl + N(ext)
移动到上一个书签 Ctrl + K, Ctrl + P(revious)

动画演示:如何使用书签
当需要定位到某个书签的时候,可以在任意位置使用以上快捷键进行查找,或者通过书签窗口来进行管理。


快速插入已有的代码
在开发了多个项目后,我们可能会积累了一些常用的代码块,这个时候可以将该代码保存到一个位置,这样之后就可以直接使用,而不需要再手工输入。实现这种快速插入代码有两种方式:工具箱、文件。两种方式均可以在不同的Visual Studio实例中使用。
借助工具箱
只需要将可能会重用的代码拖动到工具箱中,就可以在当前 Visual studio 中各个项目中使用。也可以在其它新打开的 Visual Studio 实例中使用。使用的时候将工具箱中的代码拖动到打算放置的位置即可。

动画演示:如何使用工具箱来插入代码
借助文件
先将代码段保存到单独的文件,例如reusable.cs。然后选择 编辑 / 将文件作为文本插入。

使用任务注释跟踪任务
在开发一个大型项目的时候,会有多个迭代周期,不同的迭代周期实现不同的功能。因此在某个迭代周期中的代码,很有可能会看到许多 //TODO、//FIXME 这类的注释。当我们进入下一个迭代的时候,如何快速找到这些特殊的标签并对相关代码进行处理呢? 使用查找? 你OUT了!
使用任务注释
在需要下一个迭代完成的代码上添加 //TODO (大小写无关)。具体格式:// + 任务注释 + : + 注释描述,如下图所示。

管理任务
打开 视图 / 任务列表 就可以查看所有现有的任务。双击某一项任务,就可以快速定位到该任务所在的代码块。


增加自定义任务注释
Visual Studio 提供了我们一个 “任务列表” 来实现此类注释的管理。

使用宏来完成一些烦琐的代码 [不再支持]
在 Visual Studio 2012 之前的版本,当有些效果我们经常会使用但又无法单纯的用一个快捷命令来实现时,就可以通过宏来创建自己的快捷命令。但是 Microsoft 再考虑到自定义宏的维护成本过高而且只支持VB,因此抛弃了对它的支持。
下面的演示只限于 Visual Studio 2012 之前的版本。
通过录制宏来实现一个最简单的功能
1. 打开 工具 / 宏 / 录制宏


2. 在代码编辑器中输入
Console.WriteLine("Hi");
3. 点击停止录制宏
打开 工具 / 宏 / 宏资源管理器,找到 RecordingModule 并展开,双击 TemporaryMacro。这个时候会发现编辑器光标所在的位置已经自动插入了一条 “Console.WriteLine("Hi")” 代码。



动画演示:如何创建一个最简单的宏
本节只演示宏的基本功能,更多关于宏的高级用法,请见《Visual Studio 宏的高级用法》。
注:2014年2月之后,Windows的一次更新将导致 Visual Studio 无法运行 macro,按照该文章的方法修改三个配置文件即可以修复。
自定义工具栏
我们可以通过自定义工具栏的方式把我们想要的功能给放转到工具栏区域。比如当我们自定义了宏后,如何才能以最便捷的方式使用呢? 每次都要通过 Macro Explorer 太麻烦了!
1. 打开 工具 / 自定义 ,新建一个工具栏


2. 切换到 Commands 选项卡,选择 Toolbar,并且在下拉框中选择我们刚创建的 “MyToolBar”。

3. 选择 Add Command...
在跳出来的对话框中选择我们刚创建的宏。

因为默认的名称太长,不够直观,所以我们修改下名称。


4. 添加快捷键
点击 “Keyboard...” 会跳出如下图所示界面,在 Show commands containing 输入框中输入关键字,找到我们创建的宏。然后在下方的 Press shortcut keys 中输入我们想要的快捷键。

5. 大功告成
一切准备工作都做好后,我们首先可以在工具栏中看见我们自己的工具栏。这样以后如果想使用就可以简单的单击来实现同样的功能了。当然,也可以利用我们自定义的快捷键来实现。

本文来源于 《如何利用 Visual Studio 自带工具提高开发效率》
如何利用 Visual Studio 自带工具提高开发效率的更多相关文章
- Eclipse 安装Hibernate Tools 工具 提高开发效率
1.打开Eclipse 开发工具 2.配置使用hibernate Tools 3.选择search 选项卡,搜索 hibernate 关键字 点击Install Next finish ...
- 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD
利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符-->找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files ...
- 如何利用 Visual Studio 自定义项目或工程模板
在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...
- 如何利用 Visual Studio 自定义项目或工程模板(转载)
在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...
- Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力)
系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...
- 用Visual Studio 2012+Xamarin搭建C#开发Andriod的环境
第一步:安装Visual Studio: Visual Studio 2012(或者Visual Studio 2010),原因是目前为止Xamarin for Visual Studio的插件只支持 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)
本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)
前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...
- Visual Studio Code中配置GO开发环境
在Visual Studio Code中配置GO开发环境 一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的 ...
随机推荐
- sonn_game网站开发01:写在最前面
之前做的个人博客项目,日向博客现在已经进入后期完善阶段了.是时候开始打造一个新坑了. 然而改造个什么坑呢?构思了好几天,想了好多方案,都觉得没啥动手欲望.因为,我想做的是那种,自己能用得上,而且有一定 ...
- css中的浮动与三种清除浮动的方法
说到浮动之前,先说一下CSS中margin属性的两种特殊现象 1, 外边距的合并现象: 如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top ...
- Android权限管理之RxPermission解决Android 6.0 适配问题
前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxP ...
- ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求
我们通过<以Web的形式发布静态文件>和<条件请求与区间请求>中的实例演示,以及上面针对条件请求和区间请求的介绍,从提供的功能和特性的角度对这个名为StaticFileMidd ...
- php批量删除
php批量删除可以实现多条或者全部数据一起删除 新建php文件 显示数据库中内容: <table width="100%" border="1" cell ...
- unity 3d 解析 json
官网案例传送门 我这里不过是借花献佛,案例官网就有. using UnityEngine; using System.Collections; public class json : MonoBeha ...
- MFC中成员变量的声明顺序与析构顺序
第一次用博客,第一篇随笔,就写今天遇到的一个问题吧. 在VS2008的MFC对话框程序,窗口成员变量的声明顺序与其析构顺序相反,即,先声明的变量后析构,后声明的变量先析构.未在其他模式下测试. cla ...
- RabbitMQ + PHP (一)入门与安装
RabbitMQ: 1.是实现AMQP(高级消息队列协议)的消息中间件的一种. 2.主要是为了实现系统之间的双向解耦而实现的.当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层.保存这个数 ...
- 第14章 Linux启动管理(1)_系统运行级别
1. CentOS 6.x 启动管理 (1)系统运行级别 ①运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为Windows的安全模式,主要用于系统修复.(但不是Linux的安全模式) 2 ...
- .Net程序在linux mono环境和WindowsServer上执行测试对比
最近研究了一下mono,想把windows上写的.Net程序移植到linux上跑.网上有资料说Linux上mono执行.Net程序效率比Windows高,本着实证的态度,只有实际验证过才有说服力. 写 ...