帶你玩轉Visual Studio——帶你高效開發

原文鏈接:http://blog.csdn.net/luoweifu/article/details/48852119

上一篇文章帶你玩轉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的最好方式,還有小動畫提示,一看就懂。如果你看不懂英文,看小動畫也能明白怎麼回事。 

tip of the day 
圖 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…打開設置對話框。以下是我個人的偏好設置,僅作參考(只說明一些關鍵設置的含義)。

設置1 
圖 4:設置1

1.拼寫錯誤檢測(這個不要選,不然老會有紅色的波浪線提示); 
2.類型錯誤檢測(這個選上,可以測試你的變量類型是否正確);

設置2 
圖 5:設置2

1.高亮引用的標識符(設置顏色,一個當前詞的顏色,一個是非當前詞的顏色); 
2.自動高亮當前光標所在處標識符 
3.高亮查找引用的結果; 
4.高亮重命名標識符時關聯的變量;

設置3 
圖 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%([email protected])
//===============================================================
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

說明:兩個$符號之間的內容都是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]
//---------------------------------------------------------------
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Title: #ifndef … #endif 
Shortcut: #ifn 
Description: 防止頭文件重複包含

#ifndef __$FILE_BASE_UPPER$_H__
#define __$FILE_BASE_UPPER$_H__
$end$
#endif  //__$FILE_BASE_UPPER$_H__
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

Title: Refactor Encapsulate Field 
Shortcut: 
Description: 添加類中成員變量的Get/Set方法。

    $end$$SymbolType$ Get$GeneratedPropertyName$() const
    {
        return $SymbolName$;
    }
    void Set$GeneratedPropertyName$($SymbolType$ val)
    {
        $SymbolName$ = val;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Title: 
Shortcut: //- 
Description: 用於某一個重要修改的註釋,並記錄修改時間。

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

Title: 
Shortcut: /// 
Description: 分隔線,用於重要的代碼塊的分隔。

//===============================================================
$end$
  • 1
  • 2
  • 1
  • 2


附錄

Visual Assist X Snippets 宏

. Reserved String Meaning 樣例或說明
Date DATE Year/month/day formatted as %04d/%02d/%02d 2015/10/02
  DATELOCALE Current date in locale format 本地化格式境
  DAY Day of month formatted as %d 2
  DAY02 Day of month formatted as %02d 02
  DAYNAME Day abbreviation in locale format //Fri
  DAYLONGNAME Full name of day in locale format //Friday
  MONTH Month formatted as %d 10
  MONTH02 Month formatted as %02d 10
  MONTHNAME Month abbreviation in locale format Oct
  MONTHLONGNAME Full name of month in locale format October
  YEAR Year formatted as %d 2015
  YEAR02 Year formatted as %02d 15
Time HOUR Hour formatted as %d 16
  HOUR02 Hour formatted as %02d 16
  MINUTE Minute formatted as %02d 29
  SECOND Second formatted as %02d 30
File FILE Full filename with path* D:\CppWorkspace\DesignPattern\DesignPattern\Water.h
  FILEUPPER Full filename with path in uppercase* D:\CPPWORKSPACE\DESIGNPATTERN\DESIGNPATTERN\WATER.H
  FILEBASE Filename without path or extension* Water
  FILEBASEUPPER Filename without path or extension in upper case* WATER
  FILEEXT Filename extension* h
  FILEEXTUPPER Filename extension in upper case* H
  FILEPATH Path of file* D:\CppWorkspace\DesignPattern\DesignPattern
  FILEPATHUPPER Path of file in upper case* D:\CPPWORKSPACE\DESIGNPATTERN\DESIGNPATTERN
General clipboard Current clipboard 當前剪貼板內容
  end Position of caret after expansion 輸入完成光標位置
  selected Current selection** 選定內容
  $$ Literal ‘$’ character $轉義
Symbol Context MethodName Name of containing method  
  MethodArgs Method parameters 函數參數列表
  ClassName Name of containing class 類名稱
  BaseClassName Name of base class of containing class 基類名稱
  NamespaceName Fully qualified namespace name 命名空間
GUID GUIDDEFINITION Generated GUID formatted for use in a definition GUID定義,“,”分割
  GUIDSTRING Generated GUID formatted for use in a string GUID字符串,“-”分割
  GUIDSTRUCT Generated GUID formatted for use in a struct GUID結構
  GUIDSYMBOL Generated GUID formatted with underscores GUID符號,”_”分割
  GUIDSTRINGUPPER Uppercase version of GUIDSTRING
  GUIDSTRUCTUPPER Uppercase version of GUIDSTRUCT
  GUIDSYMBOLUPPER Uppercase version of GUIDSYMBOL
  The following reserved strings are available only in refactoring snippets    
Refactor GeneratedPropertyName Property name generated during Encapsulate Field 與類屬性同名的訪問方法,首字符大寫(類似Java中的Set/Get方法)
  generatedPropertyName Same as GeneratedPropertyNamebut with lower-case first letter 與類屬性同名的訪問方法,首字符小寫
  MethodArg One parameter of the method and its type 不可用
  MethodArgName One parameter of the method 方法參數
  MethodArgType Type of one parameter of the method 函數體
  MethodBody Body of implementation 函數體
  MethodQualifier Optional qualifiers of method 尚不清楚
  ParameterList Parameters separated by commas 參數列表
  SymbolContext Context and name of method 函數全名(含類信息等)
  SymbolName Name of method 函數名稱
  SymbolPrivileges Access of method 訪問控制
  SymbolStatic Keyword static or blank static
  SymbolType Return type of method 函數返回類型
  SymbolVirtual Keyword virtual or blank virtual
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章