Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[開發工具小技巧]在Visual Studio 快速找到對應的程式碼,多多使用「移至」(Go To)及套件Codinion

image
圖片來源:https://pixabay.com/en/confused-muddled-illogical-880735/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

在開發的時候,能夠用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)的功能。

如何啟動 移至 的功能

可以使用:

  1. 快捷鍵:預設是 Ctrl + ,
  2. Menu:Edit -> Go To
    image
    用Edit Toolbar開啟設定

由於預設的快速鍵和注音輸入發的逗點快速鍵是一樣,因此很有可能按下之後還是不會出現。

因此建議調整快速鍵,以我自己為例是改成Alt+,

image
修改預設快捷鍵

幾種 移至 的方式

當把 移至 呼叫起來了之後,看到的畫面是:

image
啟動 的畫面
  1. Go To Line (Ctrl+G) 字符:: - 點下這個選項之後,可以輸入要跳過去的行數
  2. Go To File (Ctrl+1, Ctrl+F) 字符: f - 這個選項是搜索檔名
  3. Go To Types (Ctrl+1, Ctrl+T) 字符: t - 這個選項是搜索class、Struct、Enums、Interface和Delegate
  4. Go To Member (Ctrl+1, Ctrl+M) 字符: m - 這個選項是搜索variable、property、method、constant、enum item和event
  5. Go To Symbol (Ctrl+1, Ctrl+S) 字符: # - 這個選項是搜索 Types + Member
這幾個選項如果點下去,會發現其實就是在前面加上一個特殊字符。例如,Go To Line就是 加上:。 所以完全可以只記得一個快速鍵,就是如何把Go To呼叫起來,然後在打特殊字符做篩選。
如果沒有記錯,Go To是VS 2017才有的功能,VS 2015則是只有Navigate To。兩者最大的差異是在Navigate To沒有這些篩選項目。

把 移至 的篩選限定在當前打開的檔案

在剛剛那5個不同篩選項目之後都是和設定有關的內容。

這邊只提Symbol選項旁邊的那個,是Current Document (Ctrl+Alit+c)。這個選項的意思是,如果開啟的話,把搜索條件限制在當前檔案

這個最長和Go To Member做搭配。一般來說想要快速跳到當前檔案的某個property或者method,就會限定在目前這個檔案。

不過這個方式有個缺點,因為很多時候是打搜索的文字到一半,才想起來要限制在當前檔案,這個時候如果加上這個選項,剛剛打到一半的內容會清空。 由於共用一個Go To搜索框,所以當要搜索全域的時候,很有可能已經把要打的字打了一半,才發現忘記不要開這個設定,造成要重新打。

這也是為什麼用到Codinion。因為廣域和當前檔案可以分開兩個不同快捷鍵觸發(內建的Go To沒有找到這個快捷鍵)

使用Codinion套件做移動

題外話,在另外一篇有提到Codinion的另外一個功能,為不同類型欄位給出不同的顏色:[開發工具小技巧]調整Visual Studio的字形及文字顏色

套件:codinion小檔案

當初會裝Codinion的套件的原因就是因為在VS 2015無法區分,File、Member及Symbol,所以才找到了這個套件。

基本上VS內建的Go To可以取代大部分Codinion的搜索功能,不過當要在當前檔案找到某個member的時候,個人還是覺得Codinion比較好用。

以Codinion找到目前檔案的某個member為例,快速鍵是Alt+M(不確定這個是我自己改的還是內建的快速鍵),會直接下拉出目前所有member 以及可以打來過濾:

image
範例畫面

這個對我來說有兩個好處:

  1. 有時候我想要看到所有的項目:因為忘記關鍵字是什麼,可以用鍵盤下來快速找
  2. 搭配設定的顏色: 這樣可以直覺的找到什麼是什麼。例如我的method是深紅色,那麼看到就可以直覺關聯起來
不過Codinion有時候啟動會比較慢,可能是因為先把清單load出來造成。因此有好有壞。

結語

能夠快速找到想要了解或者修改的程式碼是一個非常重要的技能,因為太常用到了,因此只要能夠提升速度就可以減少很多浪費的時間。

希望透過這篇能夠讓大家知道VS在這方面所提供的功能,也歡迎如果有不同的建議能夠和我做分享。

參考資料

Introducing Go To, the successor to Navigate To
介紹Go To的功能
Codinion官網
官網介紹Codinion的功能

如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus