<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                上一篇文章[帶你玩轉Visual Studio——帶你了解VC++各種類型的工程](http://blog.csdn.net/luoweifu/article/details/48816605#t29)一文中講了各種類型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](http://www.wholetomato.com/downloads/default.asp)? 你也可以到中文的一些網站去下載,網上一搜一大片。 ### 安裝: 安裝非常簡單,你只需要點擊VA_X_Setupxxxx.exe進行默認安裝即可,這沒什么要說的。 ### 注冊碼 還是那句話:自己想辦法(以后都不再進行說明),如果有錢還是支持正版,畢竟作為程序員的我們應該知道寫一個好的程序不容易。 # VassistX的使用指南 ## 1.通過“Tip of the day”快速學習。 在你安裝VassistX后,啟動VS時,會有一個幫助提示(如下圖),這是你快速學習VassistX的最好方式,還有小動畫提示,一看就懂。如果你看不懂英文,看小動畫也能明白怎么回事。? ![](https://box.kancloud.cn/2016-01-19_569dd037bbe4b.jpg)? 圖 1:tip of the day 如果你不希望每次啟動VS時都彈出這個對話框,只需把左下角的”Show tips at startup”的勾選去掉就可以。如果需要再次彈出對話,在菜單中選擇VassitX\Visual Assist X Option…–>Starup,把Show tip of the day勾選上即可。 ## 2.主要窗口和工具 插件裝上之后你應該就能感覺比以前好多了,比如代碼高亮啊,智能提示啊,應該立馬就能體現出來。但這還是要簡單介紹一下。 ![](https://box.kancloud.cn/2016-01-19_569dd037d1656.jpg)? 圖 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中按下快捷鍵更改它。? ![](https://box.kancloud.cn/2016-01-19_569dd037f3d66.jpg)? 圖 3:設置快捷鍵 # VassistX的高效開發的屬性配制 ## 選項設置 VassistX有些默認設置并不太友好,我們可以自己重新設置它。在菜單中選擇VassitX\Visual Assist X Option…打開設置對話框。以下是我個人的偏好設置,僅作參考(只說明一些關鍵設置的含義)。 ![](https://box.kancloud.cn/2016-01-19_569dd0381089f.jpg)? 圖 4:設置1 1.拼寫錯誤檢測(這個不要選,不然老會有紅色的波浪線提示);? 2.類型錯誤檢測(這個選上,可以測試你的變量類型是否正確); ![](https://box.kancloud.cn/2016-01-19_569dd03821340.jpg)? 圖 5:設置2 1.高亮引用的標識符(設置顏色,一個當前詞的顏色,一個是非當前詞的顏色);? 2.自動高亮當前光標所在處標識符? 3.高亮查找引用的結果;? 4.高亮重命名標識符時關聯的變量; ![](https://box.kancloud.cn/2016-01-19_569dd0383681d.jpg)? 圖 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 宏](http://blog.csdn.net/luoweifu/article/details/48852119#t15) **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 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 | 上一篇回顧:? [帶你玩轉Visual Studio——帶你了解VC++各種類型的工程](http://blog.csdn.net/luoweifu/article/details/48816605) 下一篇要講述的內容:? 帶你玩轉Visual Studio——帶你高效管理代碼
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看