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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP