Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Trace 程式碼之皮

5,097 views

Published on

使用vim trace程式碼

Published in: Software

Trace 程式碼之皮

  1. 1. Trace 程式碼之皮 Wen Liao
  2. 2. Disclaimer 投影片資料為作者整理資料及個人意見,沒有經 過嚴謹確認,請讀者自行斟酌
  3. 3. 目標 分享在Linux 下使用編輯器 trace 程式碼的技巧
  4. 4. 測試環境: OS
  5. 5. 測試環境: 編輯器
  6. 6. 動機 ● 菜鳥的痛苦,看不懂別人的程式碼。 ● 花時間時間在找尋 ○ 這變數誰在用的? ○ 呼叫的這個函數到在那邊實作? ○ 這個函數是誰在呼叫的? ○ 我找到的變數到底是在哪個函數內? ○ ...
  7. 7. 編輯器也是有效率高低的 ● 找出現在游標的變數會被誰呼叫? ○ 菜鳥式:以gedit為例 ■ 游標移動到Search,按一下滑鼠左鍵 ■ 選Find,從鍵盤輸入要找的變數名稱 ■ 游標移動到搜尋按鈕,看要往上找還是往下找 ○ 非菜鳥式:以gedit為例 ■ 複製變數,按ctrl + f,貼上 ■ ctrl + g往下找, shift + crtl + g往上找 ○ vim:單鍵搞定 ■ * 自動幫你往下找,不用複製貼上變數名稱 ■ # 自動幫你往上找,不用複製貼上變數名稱
  8. 8. 我就喜歡用gedit慢慢 找,咬我啊
  9. 9. 等你遇到一個檔案上萬行, 單一函數幾百行的時候就知 道厲害!
  10. 10. 為什麼要用編輯器的進階功能? ● 搜尋和定位是一種干擾 ○ 你必須停下目前的思緒,找出下一筆資料才能夠繼續 思考。 ● 這些功能能夠讓搜尋和定位這兩件事時間最 小化,切換程式思維的時間就會更少。
  11. 11. 說明 ● 本投影片只是vgod的文章:給程式設計師的 Vim入門圖解說明的註腳
  12. 12. 範例程式,九九乘法表
  13. 13. 快速找下一個相同字串 ①游標在這邊,按* _ _ ②游標移動了
  14. 14. 快速找上一個相同字串 ②游標移動了 ①游標在這邊,按# _ _
  15. 15. 馬上知道自己在哪個函數中 ①游標在這邊,按[[ ②游標移動了 _
  16. 16. 直接跳到下一個函數 ①游標在這邊,按]] ②游標移動了 _
  17. 17. 跳到目前block開頭 ②游標移動了 _ ①游標在這邊,按[{
  18. 18. 跳到目前block結尾 ①游標在這邊,按]} ②游標移動了 _
  19. 19. 成對跳躍 (1) 按%切換 _ _
  20. 20. 成對跳躍 (2) 按%切換 _ _
  21. 21. 成對跳躍%還可以用在 ● [ ] ● #ifdef …. #endif
  22. 22. 切回上次游標位置 ①游標在這邊,按[[ ②游標移動了 _ ③按``切回上次游標位置
  23. 23. 結論 ● 善用編輯器功能,可以減少trace code的時 間。 ● 上面的使用方式當專案程式碼大到某個程度 效益就不大了。 ● 這些工具只是減少trace code的搜尋定位時 間,理解程式碼拼湊並理解完全和工具無關。 而這些才是真正trace code的肉、骨、髓。
  24. 24. 延伸作業 ● 安裝ctags和cscope,嘗試操作。 ● 學習grep和簡單的POSIX regular expression
  25. 25. 參考資料 ● 給程式設計師的Vim入門圖解說明 - vgod ○ http://blog.vgod.tw/2009/12/08/vim-cheat-sheet-for-programmers/

×