Visual Studio的奇淫技巧,你知道多少?
如果你像我一樣,或許你也沉迷于開發(fā)者工具。這就是我喜歡 Visual Studio 的原因之一——它有無(wú)數(shù)的生產(chǎn)力技巧。
這篇文章將展示五個(gè)這樣的技巧,這些技巧對(duì)我每天的工作都有幫助。請(qǐng)注意,這些僅適用于 Visual Studio。有像ReSharper[1]、Roslynator[2]和OzCode[3]這樣的擴(kuò)展可以增加大量的生產(chǎn)力價(jià)值,但這是另一篇博文。
1. 代碼片段
Visual Studio 允許您快速創(chuàng)建常見的代碼片段。這可能是一個(gè)for循環(huán)、一個(gè)try..catch子句或一個(gè)using語(yǔ)句。要使用它,只需輸入代碼片段的快捷方式。for例如,對(duì)于語(yǔ)句,開始輸入for。

IntelliSense 顯示有三個(gè)適合的片段for(前三個(gè)項(xiàng)目)。要使用其中之一,只需點(diǎn)擊Tab兩次,VS 就會(huì)生成樣板代碼。

現(xiàn)在您可以編輯突出顯示的部分。點(diǎn)擊Tab以在它們之間切換,Enter或Esc在完成時(shí)切換。
有幾十個(gè)開箱即用的片段。他們之中有一些是:
?try?foreach?if/else?do一do..while環(huán)?propdp?對(duì)于依賴屬性
甚至還有代碼塊的片段。例如,您可以用一個(gè)try..catch片段包圍一個(gè)塊。

2. 來(lái)自未導(dǎo)入命名空間的 IntelliSense 項(xiàng)
您是否曾經(jīng)覺得 ReSharper 的 IntelliSense 比 Visual Studio 的更好?那是因?yàn)?ReSharper 已經(jīng)做了很多 VS 沒有的聰明的事情。不過,Visual Studio 正在迎頭趕上。最近添加的是從未導(dǎo)入的命名空間選項(xiàng)添加項(xiàng)目。它是角落里的“+”按鈕。

當(dāng)您開始編寫某些內(nèi)容時(shí),Visual Studio 會(huì)顯示僅來(lái)自using當(dāng)前文件中添加(帶有)的命名空間的自動(dòng)完成選項(xiàng)。你可以想象這是非常有限的。您真正想要的是查看所有可用選項(xiàng)并讓 IDE 導(dǎo)入正確的命名空間。這正是這個(gè)按鈕的作用。當(dāng)點(diǎn)擊或使用Alt + A快捷方式時(shí),您將看到來(lái)自項(xiàng)目所有可用命名空間甚至其引用的項(xiàng)目:

3. 快速操作和重構(gòu)
Visual Studio 包括許多自動(dòng)重構(gòu)和代碼生成功能。嗯,沒有ReSharper[4]那么多,但您會(huì)感到驚訝。其中大部分都可以從Quick Actions and Refactorings菜單訪問,該菜單可通過Ctrl + .快捷方式訪問。只需將插入符號(hào)放在類上,然后點(diǎn)擊快捷方式。你會(huì)看到一堆有用的選項(xiàng):

例如,如果您選擇一個(gè)代碼塊,您通常能夠?qū)⑵涮崛〉揭粋€(gè)方法或一個(gè)本地函數(shù)中。

這些有很多。要發(fā)現(xiàn)它們,每當(dāng)您站在某物上方時(shí),請(qǐng)查找“快速操作”按鈕:

如果您使用的是 ReSharper,您可能會(huì)看到一個(gè)燈泡【譯者注:更像一個(gè)起子(改錐)】按鈕,顯示 ReSharper 的重構(gòu)。點(diǎn)擊該燈泡將在同一上下文菜單中顯示來(lái)自 ReSharper 和 Visual Studio 的操作。
4. 在解決方案資源管理器中跟蹤活動(dòng)項(xiàng)目或不跟蹤
轉(zhuǎn)到解決方案資源管理器中的當(dāng)前活動(dòng)文件非常有用。您可能想要重命名、移動(dòng)它、查看文件的屬性或?qū)Ш降礁浇奈募2还芩鞘裁矗畈幌胱龅木褪窃诮鉀Q方案的項(xiàng)目樹中手動(dòng)搜索它。
多年來(lái),我一直在使用Track Active Item選項(xiàng)。啟用后,解決方案資源管理器會(huì)自動(dòng)將所選文件更改為您當(dāng)前正在編輯的任何文件。

這感覺很有成效,但缺點(diǎn)是在處理一堆文件后,解決方案資源管理器樹變得一團(tuán)糟。一切都被擴(kuò)展了,不可能找到任何東西。還有一個(gè)小的性能影響。所以現(xiàn)在我改變了策略。我發(fā)現(xiàn)有一個(gè)快捷方式可以根據(jù)需要導(dǎo)航到該項(xiàng)目,而不是自動(dòng)跟蹤活動(dòng)項(xiàng)目。

默認(rèn)快捷方式是Ctrl + [, S. 我盡量保持默認(rèn)值。不是最容易記住的,但你會(huì)習(xí)慣任何事情。
這意味著我的解決方案資源管理器現(xiàn)在保持不變。展開的項(xiàng)目保持展開狀態(tài),如果我不進(jìn)行滾動(dòng),則不會(huì)滾動(dòng)任何內(nèi)容。
5. Ctrl + T 技巧
有很多方法可以在您的解決方案中導(dǎo)航。我最喜歡的方式是Ctrl + T選項(xiàng)(Edit | Go To | Go To All)。你可以搜索任何你想要的東西,Visual Studio 會(huì)找到它。這可能是一個(gè)文件、一個(gè)類、一個(gè)屬性、一個(gè)字段或一個(gè)方法。

這個(gè)窗口有一些技巧:
1.常規(guī)搜索使用簡(jiǎn)單的“包含”邏輯。如果文件/類/成員包含搜索輸入,您將在搜索結(jié)果中看到它。2.對(duì)于使用駝峰式(或 PascalCase)拼寫的項(xiàng)目,您可以只輸入首字母。例如,asdc會(huì)發(fā)現(xiàn)AnotherSearchDemoComponent:

1.如果您想進(jìn)一步縮小搜索范圍,可以將姓名首字母與部分姓名組合在一起。

1.您可以將搜索范圍縮小到特定項(xiàng)目類型:?f [search]?只查找文件?r [search]?在最近的文件中查找?t [search]?看類型?m [search]?看起來(lái)在成員?# [search]?看符號(hào)
誠(chéng)然,Visual Studio 還可以從 ReSharper 學(xué)到更多東西,它還增加了模糊搜索功能。
概括
Visual Studio 是一個(gè)強(qiáng)大的工具。你可以每天使用它,哪怕連續(xù)十年也可能仍然不知道它的每一個(gè)功能。我自己每天都會(huì)發(fā)現(xiàn)新事物,并且我已經(jīng)寫了一本[5]關(guān)于它的書[6]。我還在繼續(xù)挖掘它的新功能,我相信你也可以。
References
[1]?ReSharper:?https://www.jetbrains.com/resharper/[2]?Roslynator:?https://github.com/JosefPihrt/Roslynator[3]?OzCode:?https://oz-code.com/[4]?ReSharper:?https://www.jetbrains.com/resharper/[5]?本:?https://practicaldebugging.net/[6]?書:?https://practicaldebugging.net/
