在開發的時候,能夠用Visual Studio (以下簡稱VS) 快速定義到要改或者想找到的程式碼片段很重要。
假設本來要花10秒才能夠打開要的片段,透過使用VS和套件的功能能夠在3秒內就打開,只要發生10次就能夠節省1分鐘的時間。無形之中就可以省掉很多零碎的時間。
這篇將會介紹如何用VS內建的移至 (Go to)找到某個程式碼片段,用codinion套件快速找到目前打開的檔案member。
移至 (Go to) 功能介紹
一般來說,開啟solution之後,接下來就是要打開要修改的code檔案。例如調整某個class內容。
如果不用任何方式的話,那麼就是用Solution Explorer瀏覽到code的檔案位置然後打開。換句話說需要記得資料夾結構。
如果這個Solution並不是自己從頭到尾開發或者說專案很大的話,那麼這樣開就很花時間。
換個角度來看,既然已經知道了要改的class名稱,那麼是否能夠用那個class名稱搜索移動到那個class所在的位置?
這就是移至 (Go to)的功能。
如何啟動 移至 的功能
可以使用:
- 快捷鍵:預設是
Ctrl + ,
- Menu:
Edit -> Go To
由於預設的快速鍵和注音輸入發的逗點快速鍵是一樣,因此很有可能按下之後還是不會出現。
因此建議調整快速鍵,以我自己為例是改成Alt+,
幾種 移至 的方式
當把 移至 呼叫起來了之後,看到的畫面是:
- Go To Line (Ctrl+G) 字符:
:
- 點下這個選項之後,可以輸入要跳過去的行數 - Go To File (Ctrl+1, Ctrl+F) 字符:
f
- 這個選項是搜索檔名 - Go To Types (Ctrl+1, Ctrl+T) 字符:
t
- 這個選項是搜索class、Struct、Enums、Interface和Delegate - Go To Member (Ctrl+1, Ctrl+M) 字符:
m
- 這個選項是搜索variable、property、method、constant、enum item和event - Go To Symbol (Ctrl+1, Ctrl+S) 字符:
#
- 這個選項是搜索 Types + Member
:
。 所以完全可以只記得一個快速鍵,就是如何把Go To呼叫起來,然後在打特殊字符做篩選。 把 移至 的篩選限定在當前打開的檔案
在剛剛那5個不同篩選項目之後都是和設定有關的內容。
這邊只提Symbol選項旁邊的那個,是Current Document (Ctrl+Alit+c)。這個選項的意思是,如果開啟的話,把搜索條件限制在當前檔案。
這個最長和Go To Member做搭配。一般來說想要快速跳到當前檔案的某個property或者method,就會限定在目前這個檔案。
不過這個方式有個缺點,因為很多時候是打搜索的文字到一半,才想起來要限制在當前檔案,這個時候如果加上這個選項,剛剛打到一半的內容會清空。 由於共用一個Go To搜索框,所以當要搜索全域的時候,很有可能已經把要打的字打了一半,才發現忘記不要開這個設定,造成要重新打。
這也是為什麼用到Codinion。因為廣域和當前檔案可以分開兩個不同快捷鍵觸發(內建的Go To沒有找到這個快捷鍵)
使用Codinion套件做移動
套件:codinion小檔案
- 套件:https://marketplace.visualstudio.com/items?itemName=MartinTopfstedt.Codinion
- 直接下載:鏈接
- 官網:https://www.codinion.com/
- 支援的VS版本:2012、2015、2017
當初會裝Codinion的套件的原因就是因為在VS 2015無法區分,File、Member及Symbol,所以才找到了這個套件。
基本上VS內建的Go To可以取代大部分Codinion的搜索功能,不過當要在當前檔案找到某個member的時候,個人還是覺得Codinion比較好用。
以Codinion找到目前檔案的某個member為例,快速鍵是Alt+M
(不確定這個是我自己改的還是內建的快速鍵),會直接下拉出目前所有member 以及可以打來過濾:
這個對我來說有兩個好處:
- 有時候我想要看到所有的項目:因為忘記關鍵字是什麼,可以用鍵盤下來快速找
- 搭配設定的顏色: 這樣可以直覺的找到什麼是什麼。例如我的method是深紅色,那麼看到就可以直覺關聯起來
結語
能夠快速找到想要了解或者修改的程式碼是一個非常重要的技能,因為太常用到了,因此只要能夠提升速度就可以減少很多浪費的時間。
希望透過這篇能夠讓大家知道VS在這方面所提供的功能,也歡迎如果有不同的建議能夠和我做分享。
參考資料
- Introducing Go To, the successor to Navigate To
- 介紹Go To的功能
- Codinion官網
- 官網介紹Codinion的功能
沒有留言 :
張貼留言