O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Trace 程式碼之皮

5.265 visualizações

Publicada em

使用vim trace程式碼

Publicada em: Software
  • Seja o primeiro a comentar

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/

×