您的位置:首页 > 编程语言 > C语言/C++

带你玩转Visual Studio——带你高效开发

2015-10-02 00:31 603 查看
上一篇文章带你玩转Visual Studio——带你了解VC++各种类型的工程一文中讲了各种类型VC++工程的主要功能和用途。现在将带你一起快速开发c++程序。

有过Java开发经验的人都知道Java的常用开发工具(如Eclipse、Intellij IDEA等)都有非常强大的关键字高亮、智能提示、快速追踪等的功能。那也许你就要问了:进行C++开发的Visual Studio是否也有这个功能呢?首先要说明的是Visual Studio本身并没有这么强大的功能(至少VS2010及之前版本是这样的,有一些简单的代码跟踪能力但是很难用),但它有一个非常强大和好用的插件有这些功能,它就量VassistX,也称为VC助手,它就是本文要讲的内容。

VassistX的简单介绍与下载安装

简单介绍

VassistX的全称是Visual Assist X,是whole tomato开发的一个非常好用的插件,可用于VC6.0及Visual Studio的各个版本(包括VS.NET2002、VS.NET2003、VS2005、VS2008、VS2010、VS2012、VS2013及VS2015)。

VassistX有以下主要功能:

智能提示:关键字的提示,已有类名、方法名的提示,类成员(成员数据和成员函数)的提示;

代码高亮:关键字、类名、方法名等用不同的颜色进行高亮,方便代码的阅读;

快速追踪:声明与实现的快速跳转,.cpp与.h文件的快速切换;

高效查找:文件名的查找,标识符的查找,标识符补引用的查找;

代码重构:重命名标识符(变量名、方法名、类名等,这个非常有用),自动添加成员变量的Set/Get方法,自动添加函数的注释等。

下载与安装

下载:

官方下载地址:http://www.wholetomato.com/downloads/default.asp

你也可以到中文的一些网站去下载,网上一搜一大片。

安装:

安装非常简单,你只需要点击VA_X_Setupxxxx.exe进行默认安装即可,这没什么要说的。

注册码

还是那句话:自己想办法(以后都不再进行说明),如果有钱还是支持正版,毕竟作为程序员的我们应该知道写一个好的程序不容易。

VassistX的使用指南

1.通过“Tip of the day”快速学习。

在你安装VassistX后,启动VS时,会有一个帮助提示(如下图),这是你快速学习VassistX的最好方式,还有小动画提示,一看就懂。如果你看不懂英文,看小动画也能明白怎么回事。



图 1:tip of the day

如果你不希望每次启动VS时都弹出这个对话框,只需把左下角的”Show tips at startup”的勾选去掉就可以。如果需要再次弹出对话,在菜单中选择VassitX\Visual Assist X Option…–>Starup,把Show tip of the day勾选上即可。

2.主要窗口和工具

插件装上之后你应该就能感觉比以前好多了,比如代码高亮啊,智能提示啊,应该立马就能体现出来。但这还是要简单介绍一下。



图 2:窗口视图

插件成功安装之后,菜单栏会多一个VassistX的菜单,这里包含了VassistX的所有功能和相关的设置,设置方面后面还会进一步讲。

左侧会有两个VA Outline和VA View视图(如果没有,可能菜单VassistX\Tools\VA Outline调出来)。VA Outline这个视图很有用,也是我用的最多的一个视图,它能清晰地呈现一个类中的各个成员。

工具栏也会多一个VassistX工具组。这个我用的最多的要数最右边的.h与.cpp的切换按钮。

3常用的快捷键

这里只列出一些最常用的快捷键,一般记住这些也就够用了。

快捷键说明备注
Alt+G快速跳转,如由声明跳转到实现,由实现跳转到声明。光标要在标识符处
Alt+O.h与.cpp文件的快速切换
Alt+Shift+F查找标识符所有被引用的位置光标要在标识符处
Alt+Shift+O查找整个Solution下的某个文件O指open,打开指定的文件
Alt+Shift+S查找标识符S指Symbol
Alt+Shift+R重命名标识符光标要在标识符处,R指ReName
Ctrl+Shift+V选择剪切板的内容进行粘贴

更改快捷键

菜单Tools\Option…,然后在打开的对话框中选择Keyboard,Show commands containning中输入VAssistX就能看到VAssistX的各种功能,你可以设置某一指定功能的快捷键。如你输入VAssistX.refactorRename,就能看到重命名的默认快捷键是Shift+Alt+R,你在Press shortcut keys中按下快捷键更改它。



图 3:设置快捷键

VassistX的高效开发的属性配制

选项设置

VassistX有些默认设置并不太友好,我们可以自己重新设置它。在菜单中选择VassitX\Visual Assist X Option…打开设置对话框。以下是我个人的偏好设置,仅作参考(只说明一些关键设置的含义)。



图 4:设置1

1.拼写错误检测(这个不要选,不然老会有红色的波浪线提示);

2.类型错误检测(这个选上,可以测试你的变量类型是否正确);



图 5:设置2

1.高亮引用的标识符(设置颜色,一个当前词的颜色,一个是非当前词的颜色);

2.自动高亮当前光标所在处标识符

3.高亮查找引用的结果;

4.高亮重命名标识符时关联的变量;



图 6:设置3

1.(黑色)高亮匹配的括号;

2.(红色)高亮不匹配的括号;

3.高亮当前光标所在的行(可选择高亮前景或高亮背景);

4.纵向指示器的分隔线,一般用于控制一行代码的字符数;

5.高亮查找结果。

注释配制与自动添加代码

注释也是程序的一个重要组成部分之一,好的注释是提高代码的可读性和程序的可维护性的一个关键因素,而要写大量的注释是一件非常繁琐的事情,给程序员增加了不少负担,而VAsssistX就可能帮我们减轻这种负担。将光标移到函数名处,右键鼠标选择Refactor\Document Method可自动帮我们添加函数的注释。

我们可以自己配制自定义的注释格式。选择菜单:VAssistX\Insert VA Snippet…\Edit VA Snippet…进行设置。给出我的相关设置,仅作参考:

Title: File header detailed

Shortcut: fh

Description: 对整个文件进行注释

//===============================================================
//Summary:
//          $FILE_BASE$ 类, $end$
//FileName:
//          $FILE_BASE$.$FILE_EXT$
//Remarks:
//          ...
//Date:
//          $YEAR$/$MONTH$/$DAY$
//Author:
//          %USERNAME%(luoweifu@126.com)
//===============================================================


说明:两个$符号之间的内容都是VAssistX中定义的宏,参见文后的附录:Visual Assist X Snippets 宏

Title: Refactor Document Method

Shortcut:

Description: 对函数进行注释

//---------------------------------------------------------------
//function:
//          $SymbolName$ $end$
//Access:
//          $SymbolVirtual$ $SymbolPrivileges$ $SymbolStatic$
//Parameter:
//          [in] $MethodArg$ -
//Returns:
//          $SymbolType$ -
//Remarks:
//          ...
//author:    %USERNAME%[luoweifu]
//---------------------------------------------------------------


Title: #ifndef … #endif

Shortcut: #ifn

Description: 防止头文件重复包含

#ifndef __$FILE_BASE_UPPER$_H__
#define __$FILE_BASE_UPPER$_H__
$end$
#endif  //__$FILE_BASE_UPPER$_H__


Title: Refactor Encapsulate Field

Shortcut:

Description: 添加类中成员变量的Get/Set方法。

$end$$SymbolType$ Get$GeneratedPropertyName$() const
{
return $SymbolName$;
}
void Set$GeneratedPropertyName$($SymbolType$ val)
{
$SymbolName$ = val;
}


Title:

Shortcut: //-

Description: 用于某一个重要修改的注释,并记录修改时间。

// $end$ [$YEAR$/$MONTH$/$DAY$ %USERNAME%]


Title:

Shortcut: ///

Description: 分隔线,用于重要的代码块的分隔。

//===============================================================
$end$


附录

Visual Assist X Snippets 宏

.Reserved StringMeaning样例或说明
DateDATEYear/month/day formatted as %04d/%02d/%02d2015/10/02
DATELOCALECurrent date in locale format本地化格式境
DAYDay of month formatted as %d2
DAY02Day of month formatted as %02d02
DAYNAMEDay abbreviation in locale format//Fri
DAYLONGNAMEFull name of day in locale format//Friday
MONTHMonth formatted as %d10
MONTH02Month formatted as %02d10
MONTHNAMEMonth abbreviation in locale formatOct
MONTHLONGNAMEFull name of month in locale formatOctober
YEARYear formatted as %d2015
YEAR02Year formatted as %02d15
TimeHOURHour formatted as %d16
HOUR02Hour formatted as %02d16
MINUTEMinute formatted as %02d29
SECONDSecond formatted as %02d30
FileFILEFull filename with path*D:\CppWorkspace\DesignPattern\DesignPattern\Water.h
FILEUPPERFull filename with path in uppercase*D:\CPPWORKSPACE\DESIGNPATTERN\DESIGNPATTERN\WATER.H
FILEBASEFilename without path or extension*Water
FILEBASEUPPERFilename without path or extension in upper case*WATER
FILEEXTFilename extension*h
FILEEXTUPPERFilename extension in upper case*H
FILEPATHPath of file*D:\CppWorkspace\DesignPattern\DesignPattern
FILEPATHUPPERPath of file in upper case*D:\CPPWORKSPACE\DESIGNPATTERN\DESIGNPATTERN
GeneralclipboardCurrent clipboard当前剪贴板内容
endPosition of caret after expansion输入完成光标位置
selectedCurrent selection**选定内容
$$Literal ‘$’ character$转义
Symbol ContextMethodNameName of containing method
MethodArgsMethod parameters函数参数列表
ClassNameName of containing class类名称
BaseClassNameName of base class of containing class基类名称
NamespaceNameFully qualified namespace name命名空间
GUIDGUIDDEFINITIONGenerated GUID formatted for use in a definitionGUID定义,“,”分割
GUIDSTRINGGenerated GUID formatted for use in a stringGUID字符串,“-”分割
GUIDSTRUCTGenerated GUID formatted for use in a structGUID结构
GUIDSYMBOLGenerated GUID formatted with underscoresGUID符号,”_”分割
GUIDSTRINGUPPERUppercase version of GUIDSTRING
GUIDSTRUCTUPPERUppercase version of GUIDSTRUCT
GUIDSYMBOLUPPERUppercase version of GUIDSYMBOL
The following reserved strings are available only in refactoring snippets
RefactorGeneratedPropertyNameProperty name generated during Encapsulate Field与类属性同名的访问方法,首字符大写(类似Java中的Set/Get方法)
generatedPropertyNameSame as GeneratedPropertyName but with lower-case first letter与类属性同名的访问方法,首字符小写
MethodArgOne parameter of the method and its type不可用
MethodArgNameOne parameter of the method方法参数
MethodArgTypeType of one parameter of the method函数体
MethodBodyBody of implementation函数体
MethodQualifierOptional qualifiers of method尚不清楚
ParameterListParameters separated by commas参数列表
SymbolContextContext and name of method函数全名(含类信息等)
SymbolNameName of method函数名称
SymbolPrivilegesAccess of method访问控制
SymbolStaticKeyword static or blankstatic
SymbolTypeReturn type of method函数返回类型
SymbolVirtualKeyword virtual or blankvirtual
上一篇回顾:

带你玩转Visual Studio——带你了解VC++各种类型的工程

下一篇要讲述的内容:

带你玩转Visual Studio——带你高效管理代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  VS2010 c++ VassistX VC工具