老地方冰果室交流區
http://ubb.frostyplace.com/

BBEdit & ctags
http://ubb.frostyplace.com/viewtopic.php?f=13&t=16121
1 頁 (共 1 頁)

發表人:  ulysses [ 04/16/2005 2:57 pm ]
文章主題 :  BBEdit & ctags

在下用 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,不過也算是堪用的替代品了

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

發表人:  digdog [ 04/16/2005 5:03 pm ]
文章主題 :  Re: BBEdit & ctags

置入性行銷... 8)

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

代碼:
% sudo port install ctags

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/