【VS Hacks】定製VS

來源:互聯網
上載者:User
【VS Hacks】定製VS

# Hack 24   定製快速鍵

VS能夠做很多鍵盤的配置,其實在VS中目前已經發現有很多的快速鍵了,但是在這個技巧篇裡會學到如何建立新的快速鍵,以及編輯已有的快速鍵。VS中包含很多的命令,只有其中的一小部分定義了快速鍵,可以通過“選項”視窗來添加或者移除快速鍵定義。

(1) 添加定製快速鍵

在這裡你將會為“產生->重建解決方案”命令添加快速鍵,首先通過“工具->選項”開啟選項視窗,並選擇環境檔案夾下的子項“鍵盤”。可以通過這個介面來編輯或建立快速鍵。

VS不允許對鍵盤對應的預設方案進行改動。所以必須先將目前的映射方案儲存為另一個新的映射方案名稱,然後對新方案進行編輯。(但是我在VS2005裡沒有發現這個按鈕,不清楚到底是哪裡做了改進)。

接著找到要定義的命令,可以通過在“顯示命令包含”裡鍵入部分名稱從列表中找到它,選擇它。

然後確定快速鍵的作用範圍。在“新的快速鍵用於”下拉式清單裡選擇“全域”,對於某些快速鍵,你可以設定應用於某個設計器或者編輯器(例如,可以設定一個快速鍵針對於ASP.NET,僅當使用HTML編輯器的設計檢視時是合法的)。

最後是確定用什麼快速鍵,這個有點麻煩,因為有很多快速鍵已經被佔用了,如果被佔用了,在下面會顯示其當前的佔用對象,如果你點擊“分配”按鈕,然後再點擊“確定”按鈕就會成功分配了,並會覆蓋掉原來佔用這個快速鍵的命令捷徑。

VS支援鍵盤和弦(Key Chords),就是多個快速鍵的組合,比如 Ctrl+K, Ctrl+E 可以用於一個命令,這兩個快速鍵必須接著依次按才可以觸發命令。

(2) Hacking the Hack (不知道這個該怎麼翻譯才合適,也許只可意會,不可言傳吧,呵呵)

這個小節講的內容主要是針對當你辛辛苦苦為自己定製好了自己風格的捷徑後,如果要換台電腦開發,怎麼將這些定製的設定遷移到另一台電腦上。這裡又藉助了VSTweak這個輔助外掛程式工具,但是這個工具現在僅有針對VS2003的,VS2005的還沒發現,所以偶用不著,也不用在這裡紀念它了。

但是這裡介紹一種手工的方法,我覺得還是可以借鑒的,比較簡單,其實說白了就是拷貝幾個檔案而已。檔案尾碼名為“.vsk”,存在 \Documents and Settings\\Application Data\Microsoft\VisualStudio\8.0 這個目錄裡,我自己在VS2005裡試了一下,預設情況下只有一個Current.vsk檔案,但是如果你刪除後,VS還會自動建立一個;如果你對鍵盤對應做了改動,它會產生一個新的Users.vsk檔案,可能就是這個檔案啦。

另外,個人覺得VS2005肯定不會不考慮這些的,應該從“工具->匯入和匯出設定”這個命令可以利用嚮導來完成這些工作,反正條條大路通羅馬,只要達到目的了,就OK了。:)

# Hack 25   定製菜單和工具列

我們可以讓VS如我所願地工作,還可以將這些工作方式順利遷移到其他電腦上。VS包含很多菜單和工具列,讓我們學習如何定製他們吧。

(1) 定製工具列

a. 修改存在的工具列

移動按鈕:很簡單,就是按下Alt鍵,並拖動按鈕,可以在工具列之間或者同個工具列的不同位置之間進行拖放;

添加或移除按鈕:首先通過“工具->自訂”或者點擊每個工具列右邊的小箭頭,選擇添加或移除按鈕->自訂,然後就開啟了“自訂”視窗,在其中操作就是了,其實就是拖拉過來拖拉過去的,直接選中某個命令,直接從自訂視窗拖到工具列上就可以啦。

但是拖上去以後可能就沒有表徵圖,這些很好解決,可以拷貝其他按鈕的,然後再進行編輯就行了。一切奧妙盡在右鍵菜單,反正我是領會到了,自己可以動手感覺一下。

b. 添加新的工具列

這個操作也是在“自訂”視窗裡進行的,很簡單,不用多說了。

(2) 定製菜單

菜單的定製和工具列類似,也是在“自訂”視窗的“命令”頁面裡進行的,直接拖拉完成。

(3) 重設變化

botch up [口](由於不注意、不小心等)搞壞, 弄糟

有時由於調皮搗蛋弄巧成拙了,怎麼辦?VS還提供了挽救的辦法,就是重設到最初狀態。怎麼操作呢?步驟如下:

a. 關掉所有開啟的VS;
b. 開啟VS命令視窗;
c. 輸入devenv /setup ;
d. 這樣會重設所有的工具列和功能表列的定製,並且修複出現的問題。

(註:我在VS2005裡做了N次的實驗,實踐證明,沒有起作用)

(4) Hacking the Hack

對於這些定製的遷移,也就是說到另一台電腦上怎麼能帶過來。我覺得VS2005還是會從“工具->匯入和匯出設定”這個命令可以利用嚮導來完成這些工作的。下面有種手工的方法:

說白了就是拷貝檔案而已。檔案名稱為“CmdUI.PRF”,對於VS2005來說,存在 \Documents and Settings\\Application Data\Microsoft\VisualStudio\8.0\2052 這個目錄裡,我自己在VS2005裡試了一下,沒問題,但是如果你刪除,VS還會自動建立一個。

所以經過我的思考和實驗,其實如果要重設這些菜單和工具列的變化,根本就不需要運行那個不管用的命令“devenv /setup”,只要把CmdUI.PRF這個檔案刪除就可以了。或者我覺得還可以從“工具->匯入和匯出設定”彈出的嚮導視窗裡選擇“重設所有設定”功能來搞定,不過這個我沒有試過。

# Hack 26   建立自訂視窗布局

VS的視窗就像一個項目的儀表板,可以建立不同的布局,並在其中來回切換。

VS有一些預設的視窗布局,例如它有設計模式的視窗布局和偵錯模式的布局。對這些視窗布局的修改不會在相互之間受到影響。VS雖然包含了一些布局方案但是卻沒有提供建立布局以及在各種布局切換的功能。但是提供了一個Power Toy可以完成這些工作,那就是 VSWindowManager, 我找了針對VS2005的版本,為:http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=VSWindowManager&ReleaseId=543,目前最新的版本是
VS2005 1.2Beta版本的。安裝時先關掉VS,裝完後再開啟,會發現“視窗”菜單中多了兩項,並且還多了個工具列“Windows Manager”,工具列按鈕分別對應“Apply Window Layout ”裡的幾個配置模式。

兩個功能表項目分別為“Save Windows Layout As”和“Apply Window Layout”,使用起來很簡單,諑磨一下就好了,也就是先定製好模式,然後再應用。

(1) Hacking the Hack

對於這些定製的遷移,也就是說到另一台電腦上怎麼能帶過來。就是拷貝一個檔案而已。檔案名稱為“devenv.xml”,對於VS2005來說,存在 \Documents and Settings\\Application Data\Microsoft\VisualStudio\8.0 這個目錄裡,我自己在VS2005裡試了一下,很遺憾,沒有找到這個檔案。

 

# Hack 27   自訂工具箱

VS的工具箱是最常用的,用來存放控制項和程式碼片段,可以直接拖放到編輯器或代碼視窗中。

(1) 控制項和工具箱

可以添加控制項到工具箱中,我是在VS2005中操作的,在工具箱中選擇一個選項卡,然後點擊右鍵,選擇“選擇項”,就會彈出一個視窗,分別包含一個.NetFrameWork的控制項列表和一個COM列表,選中那些前面未打勾的,然後確定以後,就可以添加到當前選項卡中了。

添加的控制項如果沒有提供表徵圖,系統會自動分配一個小齒輪表徵圖,如果你自己做控制項,可以弄一個16*16的位元影像,設定為嵌入資源,並且和你的控制項同名即可。

(2) 程式碼片段和工具箱

工具箱的通常用法就是添加移除選項卡和控制項,但是也可以用它來存放常用的程式碼片段。比如存放一段JavaScript代碼、調用獲得連接字串的方法等等,工具箱是個很好的存放地點。

可以先單獨建個選項卡,起個名字,例如“程式碼片段”,然後從文件視窗選中程式碼片段,拖放到選項卡裡,就OK了,最好再將其重新命名一下,起個有意義的名字,這個重新命名不會影響到程式碼片段的內容。如果需要用到時,就直接將其拖放到文件視窗的指定位置。

(3) Hacking the Hack

還是要談到了如果換了電腦怎麼辦的問題,還是拷貝一個檔案,就是“toolbox.tbd”,對於VS2005來說,位置處於:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\VisualStudio\8.0\,當然如果存在自訂的控制項,相應的控制項程式集也需要拷貝。

註:這些均為本人看書的讀後感及部分翻譯,如要轉載,請通知偶一下,謝謝。

 

# Hack 28  打包工具箱設定

如果想要將同樣的工具箱設定發布到許多機器上,則可以寫個程式來往工具箱裡添加自訂群組件或程式碼片段。團隊開發的最重要的就是編寫一致的代碼,保證擁有同樣的組件集和程式碼片段是有利於此的辦法之一。

Hack 27 中講述的手動拷貝檔案的辦法對於分發工具箱設定並不見得就好。因為這個方法對於移動個人的配置是很好的解決辦法,但是作為分發的方法,就有可能導致覆蓋掉每個開發人員已經建立的自訂控制項和程式碼片段。

那麼怎麼樣才好呢?其實可以通過Visual Studio Common Enviroment Object Model來建立一個小程式來添加控制項和程式碼片段到每個開發人員的系統裡。

先建立一個Windows Forms項目,然後建立一個對envdte.dll程式集的引用(它包含了我們需要用來修改VS環境的對象),它叫Common Enviroment Object Model,可以用來修改VS IDE的各個方面。

此書說當利用EnvDTE時,可能會頻繁出現“Call was rejected by the Callee”的錯誤。這可能是由於逾時,在慢機器上頻繁出現較多,但是在運行快的機器上也會彈出。在我下載的代碼裡它通過註冊了一個Ole訊息了避免這種錯誤,書中的代碼裡面如果想正確運行,還得根據你VS的安裝修改一些內容。

需要得到目前DTE的執行個體,並不簡單,因為對於VS2002 和VS2003,DTE對象幾乎是一樣的,我們必須通過ProgID來得到這個類,如下所示:

Type latestDTE = Type.GetTypeFromProgID("VisualStudio.DTE.8.0");
EnvDTE.DTE env = Activator.CreateInstance(latestDTE) as EnvDTE.DTE;

可以通過如下代碼得到當前正在啟動並執行VS執行個體的引用:

EnvDTE.DTE dte = (DTE)Marshal.GetActiveObject("VisualStudio.DTE.8.0");

DTE對象可以用來修改VS的許多部分。如果想訪問工具箱視窗,則需要訪問DTE對象的Windows集合的vsWindowKindToolBox常量,然後強制轉換為ToolBox類型:

//Get the toolbox window
Window win = env.Windows.Item(Constants.vsWindowKindToolbox);

//Get the toolbox from the window
ToolBox toolBox = (ToolBox) win.Object;

後面的沒什麼好注意的,省略咧,嘿嘿……

# Hack 29  添加對非標準副檔名的支援

其實這個就是利用外掛程式工具 VSTweak 來添加某種非標準的副檔名,以便VS能夠將其一視同仁,當作自己的孩子對待;或者把某種副檔名踢出門外,但是VSTweak這個工具暫時沒有針對VS2005的版本,所以只能乾瞪眼嘍。

# Hack 30 註冊表技巧

VS有一些設定項你只能通過註冊表獲得,用它可能做不少事情,但是要千萬小心行事。

註冊表包含了不少VS的設定項。這些設定項有的能夠通過“工具->選項”對話方塊來設定;有的能夠通過VS的PowerToys工具來編輯;一些通過直接存取註冊表來編輯。這裡要學習如何修改;如何用替代的註冊表;如何將這些設定在電腦間遷移。

(1)註冊表設定項

VS在註冊表的兩個地方儲存大多數的設定項。第一個位置就是位於HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/8.0,儲存了目前使用者的特定設定。這些設定包括對各種編輯器、外部工具、源碼控制以及幾乎所有通過“工具->選項”視窗設定的內容。第二個位置就是HKEY_LOCAL_MACHINE/Software/Microsoft/VisualStudio/8.0下,和前一個位置相比,這裡儲存的是系統配置,對所有的使用者都起作用。對於各個項,在此不再羅嗦,就此Over了。

(2)移動註冊表設定

移動登錄機碼非常簡單,但是卻充滿危險(be fraught with danger),最好就是僅僅移動那些你清楚的項。移動的方法很簡單,就是選中,然後匯出,儲存,然後再在另外一個地方匯入即可。如果你沒用VS2005的話,象在系統間移動字型、顏色、編輯器設定這些工作只能通過註冊表來完成。很遺憾,偶用的就是VS2005:)

(3)利用替代的註冊項

平時在修改註冊表時都要備份一下註冊表,省得不小心玩壞了導致出問題,VS還提供了另外一種辦法。你能夠切換VS使用的註冊項。方法就是對當前註冊項進行拷貝,然後告訴VS用它,並盡情修改(to one's heart's content 盡興地),如果出了問題,只需要切換回老的註冊項位置就可以了。步驟如下:

a. 對HKEY_LOCAL_MACHINE/Software/Microsoft/VisualStudio/8.0進行到處儲存為.reg檔案。
b. 在文字編輯器裡開啟,並將所有“\8.0”替換為“\8.0Hacks”
c. 雙擊.reg檔案,會將其內容裝在進當前註冊表裡,會多出了一項“8.0Hacks”。

在第二步替換時要千萬小心,別替換錯了,呵呵,內容太多,替換的有好幾千項呢。

建立完畢後,下一步就是告訴VS啟動時用它了,利用 /rootsuffix 開關來進行切換,運行命令:devenv.exe /rootsuffix Hacks,此命令會讓VS利用新登錄機碼樹,注意應該鍵入Hacks而不是8.0Hacks,由於Hacks是你加到當前鍵的尾碼。

當VS開啟時,如果出問題了,就不加開關,還會用原來的8.0登錄機碼內容。我改好後自己試了一下會出現重新設定VS開發環境的嚮導,和最初剛安裝成功時一樣,但是也會彈出錯誤,同時還會自動在目前使用者登錄機碼那裡也自動產生8.0Hacks登錄機碼。

# Hack 31 
儲存和移動IDE設定

當我看到這一節內容時,發現前面偶的看法是正確的,VS2005的確是通過“工具->匯入和匯出設定”功能可以完美解決前面講的那些通過手工拷貝檔案或者利用工具來完成的設定移動功能。點擊這個功能表項目會出現嚮導,可以完成“儲存”、“匯入”、“重設”三種功能。

它會將這些設定儲存為一個.vssettings尾碼的檔案,這個檔案是XML和位元據的混合,此檔案的結構是XML檔案格式,但是一些節點的值是位元據,不能夠編輯,一些是普通文本,很容易編輯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.