老地方冰果室交流區

歡迎冰果室讀者在此交流
現在的時間是 11/15/2019 4:06 pm

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 2 篇文章 ] 
發表人 內容
 文章主題 : BBEdit & ctags
文章發表於 : 04/16/2005 2:57 pm 
離線
討論區管理員
頭像

註冊時間: 05/18/2001 1:01 am
文章: 2475
來自: Forgotten Realm
在下用 BBEdit 用了很長一段時間。BBEdit 是一個功能眾多的文字編輯器,很多功能也懶得一一去試。這兩天在玩 BBEdit 時無意間發現一個功能,RTFM 之後再加上一些小調整,意外的好用,尤其是寫程式的時候極度方便。

BBEdit 8.0 在搜尋選單裡有一個 Find Definition,它的功能就是搜尋某個 keyword / function / variable / data-type 的定義。這個功能平常沒有作用,必須要配合 ctags 這個 GNU 小程式,才能運作。ctags 在系統內有內建,但是版本太老舊無法使用。要配合 BBEdit,需要安裝 5.5.4 版以後的版本。安裝方式如下:

  1. 首先,必須要裝 XCode。會需要這玩意兒的人應該都有裝。
  2. http://ctags.sourceforge.net/ 下載 ctags-5.5.4.tar.gz,用 Stuffit Expender解壓縮。
  3. 打開 Terminal,進入解壓出來的 ctags-5.5.4 目錄。
  4. 輸入 ./configure
  5. 輸入 make
  6. 輸入 sudo make install,系統會問你 root 帳號密碼。
ctags 會安裝在 /usr/local/bin 中,直接在 Terminal 中輸入 ctags 的話,啟動的會是系統預設的 /usr/bin/ctags。因此必須用完整路徑名稱啟動。

安裝好了以後,在程式 Project 的目錄中執行
代碼:
/usr/local/bin/ctags --excmd=number --tag-relative=no --fields=+a+m+n+S -R `pwd`

這個命令,就會自動搜尋你所有的程式碼,包括次目錄中的檔案,並且建立一個 tags 索引檔。之後在 BBEdit 中開啟 Project 目錄及次目錄內的檔案,選取一個使用者自己定義的變數或函式名稱,選取 Find Definition,就會自動開啟包含這個變數/函式定義的位置。在寫程式的時候,如果臨時想要查詢一個 class 內部的成員有哪些、函式的傳入參數有哪些,這個功能就非常便利。美中不足的是,BBEdit 不會自動追蹤檔案的更新,必須手動執行 ctags 來更新索引檔。

在下用了兩個小技巧,讓這個功能更加好用:

  1. 平常寫程式的時候,在下喜歡用 Makefile。因此就在 Makefile 中加上一行:
    代碼:
    tag:
       /usr/local/bin/ctags --excmd=number --tag-relative=no --fields=+a+m+n+S -R `pwd`

    之後只要在 Terminal 中輸入 make tag,就可以隨時更新標籤。
  2. BBEdit 允許使用者替換選單功能鍵,於是在下就把開啟選取檔名的 Command-D 替換給 Find Definition。如此一來,寫程式的時候輸入 Function Name,按個 Command-D 就可以自動找出 Function 的 Prototype。雖然不及 Autofill,不過也算是堪用的替代品了

已經知道這個功能的人,就當在下是野人獻曝吧。

_________________
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.


回頂端
 個人資料  
 
 文章主題 : Re: BBEdit & ctags
文章發表於 : 04/16/2005 5:03 pm 
離線
討論區管理員
頭像

註冊時間: 05/02/2001 1:01 am
文章: 1297
置入性行銷... 8)

有使用 darwinports 的朋友,可以利用下面的指令安裝 ctags 5.5.4

代碼:
% sudo port install ctags

_________________
[digdog dig];


回頂端
 個人資料  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 2 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
POWERED_BY
正體中文語系由 竹貓星球 維護製作