etags 用法

news/2024/12/4 17:30:17/

(本文参考http://www.emacs.cn/Doc/Etags,并根据自己的使用情况做了些微修改。)

 

1. etags 基本用法

在emacs里可以用etags命令生成emacs专用的tags文件,有了此文件之后便可以使用一些emacs tags的命令,比如对于编辑C/C++程序的人员可以方便的定位一个函数的定义,或者对函数名进行自动补齐:

 

上述命令可以在当前目录查找所有的.h和.cpp文件并把它们的摘要提取出来做成TAGS文件,具体的etags的用法可以看一下etags的manual。

 

在.emacs中加入这样的语句:

 

 

这样emacs就会自动读取这个tags文件的内容。

 

几个重要的命令。

 

  • M-. 查找一个tag,比如函数定义类型定义等。
  • C-u M-. 查找下一个tag的位置
  • M-* 回到上一次运行M-.前的光标位置。
  • M-TAB 自动补齐函数名。

 

2. 参考:一些整合的快捷键

易于编译和TAGS的使用,搜集自 zslevin 的帖子(LinuxForum GNU Emacs/XEmacs)

 

  • C-f5, 设置编译命令
  • f5, 保存当前窗口然后编译当前窗口文件

 

  • F7, 查找 TAGS 文件(更新 TAGS 表)
  • C-F7, 在当前目录下生成包含所有递归子目录的 TAGS 文件(使用了shell中的find命令)
  • C-. 开个小窗查看光标处的 tag
  • C-, 只留下当前查看代码的窗口(关闭查看 tag 的小窗)
  • M-. 查找光标处的 tag,并跳转
  • M-, 跳回原来查找 tag 的地方
  • C-M-, 提示要查找的 tag,并跳转
  • C-M-. 要匹配的 tag 表达式(系统已定义)
  • Shift-Tab, C/C++ 和 lisp 等模式中补全函数名(一般情况下M-Tab被窗口管理器遮屏了)

 

定义按键,在生成相应 tag 文件时,比如一个目录下所有的 *.cpp 和 *.h 文件使用这样的正则表达式 *.[ch]*,在下面的 C-F7 中可能会用到。

 

 

上面定义的命令需要用到的函数:

 


http://www.ppmy.cn/news/544023.html

相关文章

Easter Eggs

题目链接:Easter Eggs 显然可以二分。 然后怎么check呢?显然我们把距离小于mid的点连起来,那么就相当于找一个最大独立集,然后最大独立集的个数要大于等于n。 然后因为连边的只是蓝色和红色之间,所以这是一个二分图&…

$.each() 和 $(data).each()的使用

$.each() 和 $(data).each()的区别 二者都是循环的一种处理 $(data).each()主要用于DOM节点的循环,也可用于一个数据对象的循环, $.each()主要用于对数据的处理 其实两者都可以处理DOM节点和数据对象,只是一个使用习惯问题 $(data).each() …

each的用法

1.数组中的each 复制代码var arr [ "one", "two", "three", "four"]; $.each(arr, function(){ alert(this); }); //上面这个each输出的结果分别为:one,two,three,four var arr1 [[1, 4, 3], [4, 6, 6…

eggs和egg是什么意思_egg是什么

展开全部 egg 英 [eɡ] 美 [ɛɡ] 形容词: eggless 过去式: egged 过去分词: egged 现在分词: egging 第三32313133353236313431303231363533e58685e5aeb931333335313064人称单数: eggs n.蛋;卵;蛋形物 vt.用蛋覆盖;向 ... 扔蛋 vt.怂恿&…

linux下挂载移动硬盘(ntfs格式)

工作中遇到linux系统 Red Hat Enterprise5.7 挂载希捷ntfs格式移动硬盘,会跳出一个ERROR提示框:The volume ‘EAGET-NQH’user the ntfs file system which is not supported by your system. 其中‘EAGET-NQH’为我的移动硬盘名。 查找资料发现linux支…

egg的基本使用

1.首先在编辑器的终端里面,通过脚手架创建基于egg的项目: mkdir egg-example && cd egg-example npm init egg --typesimple npm i 2.编写Controller: 如果你熟悉 Web 开发或 MVC,肯定猜到我们第一步需要编写的是 Controller 和 Rout…

fgets()

在写网络编程时候遇到一个问题:通过fgets读取到了一行输入到缓冲区中,总是要通过strlen()来查下缓冲区中的长度,然后替换。 一开始没懂这个操作,后来查了下资料,原来fgets在读取输入流的时候,会读取你最后…

egg使用egg-socket.io

下载 npm i egg-socket.io --save 使用 plugin.js module.exports.io {enable: true,package: egg-socket.io, }// config.default.js config.io {init: { }, // passed to engine.ionamespace: {/: {connectionMiddleware: [connection],packetMiddleware: [],},/example: …