SFFamily 板


LINE

※ [本文轉錄自 Linux 看板] 發信人: Jiun-jie Huang <[email protected]>, 看板: Linux 標 題: Emacs etags 簡介 發信站: National Tsing Hua University (Fri Mar 12 02:52:54 2004) 轉信站: ptt!ctu-reader!news.nctu!not-for-mail etags 簡介 -*- Outline -*- * 前言 有許多的 IDE(Integrated Development Environment) 都提供了函數名稱的 自動完成功能( 亦即,輸入前面幾個字元之後,編輯器可以自動幫你完成後面 的函數名稱)。Vi 裡面有 ctags 可以做到這件事,那麼 Emacs 呢?答案是 etags. 在這篇文章裡,我會簡短的介紹如何使用 etags. * etags 使用方法 ** 建立函數及關鍵字列表 在使用之前,你必須先在你的發展環境目錄底下建立列表; 假設你的發展環 境目錄名稱叫做 /path/to/developer/, 建立列表的方法如下: % cd /path/to/developer/ % etags *.h *.c 這樣就建立完成了,根據 etags/ctags 的手冊, etags/ctags 可以處理的語 言有 C, Objective C, C++, Java, Fortran, Ada, Cobol, Erlang, LaTeX, Emacs Lisp/Common Lisp, makefiles, Pascal, Perl, Postscript, Python, Prolog, Scheme and most assembler-like syntaxes. 預設的列表檔名是 TAGS. ** 把函數及關鍵字列表讀進 Emacs 開始用 Emacs 編輯檔案, 比如說你正在編輯 foo.c, 你先用 C-x C-f 把 foo.c 讀進來之後,你需要使用 etags 的功能,那麼你就執行 M-x visit-tags-table <RET> /path/to/developer/TAGS <RET> 把 /path/to/developer/TAGS 檔案讀進來。註:<RET> 表示 Return 鍵,或 是在鍵盤上通常標示為 Enter. ** 在 Emacs 中搜尋函數內容 有的時候我們會想要直接跳到某個函數裡面去修改他的內容,你可以使用 M-. (沒錯,就是 Meta 跟一個句點) 然後輸入函數名稱就會跳到該函數的 code 那裡去; 如果你按 M-. 的時候游標指著一個函數名稱,你可以在輸入 函數名稱的時候直接按 <RET> 即可跳到該函數源碼的地方。跳過去之後,如 果你想要回來原來地方,你可以用 M-* 來做到。 如果你想要在另一個視窗內看到該函數源碼,而不是你現在的這個視窗(對照 方便), 那麼你可以用 C-x 4 . TAG <RET> 來達成這件事。 如果你要搜尋某些函數與關鍵字,你可以用 M-x tags-search 的功能,這個 可以用 regular expression 來搜尋。當你用 M-x tags-search <RET> REGEXP <RET> 之後,你可以用 M-, (Meta 逗點), 找下一個搜尋到的函數名 或關鍵字。 ** 函數及關鍵字自動完成 etags 並沒有提供函數及關鍵字自動完成(auto-completion)的功能, 但是 Emacs 有提供一個功能可以達成這件事,叫做 dynamic abbreviation expansion. 這個功能事實上是把去找在開啟的 buffer 裡面有那些字串是你 輸入字串的完整字串,而 TAGS 列表就在一個 buffer 裡面,所以可以達成 函數及關鍵字自動列表。當你輸入一個函數名稱或是一個變數名稱的前面幾 個字母,比如說: foo-, 然後按 M-/, 這時候 Emacs 會把所有可能的字串找 到,並把第一個可能的字串直接完成,所以你按了一次 M-/ 之後可能會變成 foo-bar-function, 你繼續按 M-/ 可以變換成其他可能的字串,直到沒有為 止。或者是你也可以按 C-M-/, 這時候 Emacs 會像其他時候的 auto-completion 的行為一樣,跳出一個視窗把所有的可能列表列出來給你 選擇。 * 結語 當我開始使用 etags 的功能之後,我就沒有辦法不用這個功能了,因為實在 是太方便了。etags 也可以幫你自動完成標準函式庫裡的名稱,只要你在 etags 的時候把 /usr/include 裡的表頭檔案也包含進來就可以了。etags 還 有其他比較進階的功能,我沒有一一列出來,有興趣的人可以去看看 M-x info 裡的 Emacs 手冊。最後我做一個這次提到的功能列表,供讀者參考用。 * 按鍵列表 M-x visit-tags-table <RET> TAGS-file <RET> 把 TAGS-file 檔案讀進 Emacs M-. TAG <RET> 尋找函數或關鍵字定義的源碼 C-x 4 . TAG <RET> 在另一個視窗尋找函數或關鍵字定義 M-* 回到尋找關鍵字定義之前的地方 M-x tags-search <RET> REGEXP <RET> 用正規表示式搜尋函數或關鍵字定義 M-, 找下一個搜尋到的函數或關鍵字 M-/ 自動完成可能的函數或關鍵字 C-M-/ 列出所有函數或關鍵字名稱的自動完成列表 -- Jiun-jie Huang, aka Albert E-mail: jjhuang AT cm.nctu.edu.tw 黃俊傑 Department of Computer Science National Tsing Hua University MIME/ASCII/PDF/PostScript are welcome! HsinChu, Taiwan NO MS WORD DOC FILE, PLEASE! -- 我愛用UD 我希望Blizzard可以讓nec招換出來的骷髏兵強壯一點 最好身高一米九 一拳三百磅 不然骷髏兵實在太廢~ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.107.243







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP