- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vim和ctgas使用
[/home/brimmer/src]$ ctags -R-R表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。tags 文件中包括这些对象的列表:l??????? 用#define定 义的宏l??????? 枚 举型变量的值l??????? 函 数的定义、原型和声明l??????? 名 字空间(namespace)l??????? 类 型定义(typedefs)l??????? 变 量(包括定义和声明)l??????? 类 (class)、结构(struct)、枚举类型(enum)和联合(union)l??????? 类、 结构和联合中成员变量或函数VIM用 这个tags文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:1)??????? 用命令行。在运行vim的 时候加上-t参数,例如:[/home/brimmer/src]$ vim -t foo_bar这个命令将打开定义foo_bar(变量或函数或其它)的文件,并把光标定位到这一行。2)??????? 在vim编 辑器内用:ta命令,例如::ta foo_bar3)??????? 最方便的方法是把光标移到变量名或函数名上,然后按下Ctrl-]。 用Ctrl-o退回原来的地方。注意:运行vim的时候,必须 在tags文件所在的目录下运行。否则,运行vim的时候还要用:set tags=命令设定tags文件的路径,这样vim才能找到tags 文件。在函数中移动光标[{ 转到上一个位于第一列的{}] 转到下一个位于第一列的{{?? 转到上一个空行}?? 转到下一个空行gd 转到当前光标所指的局部变量的定义*?? 转到当前光标所指的单词下一次出现的地方#?? 转到当前光标所指的单词上一次出现的地方Vim 的创造者是一名计算机程序员,因此这就不奇怪 Vim 中有许多帮助编写程序的功能:跳转到标识符被定义和使用的地方;在另一个窗口中预览有关的声明等等。在下一章中还会介绍更多的功能。|29.1| 使用标签|29.2| 预览窗口|29.3| 在代码间移动|29.4| 查找全局标识符|29.5| 查找局部标识符???? 下一章:|usr_30.txt| 编辑程序???? 前一章:|usr_28.txt| 折叠?????? 目录:|usr_toc.txt|*29.1* 使用标签什么是标签?标签就是一个标识符被定义的地方。一个例子就是 C 或者 C++ 程序中的函数定义。标签列表可以保存在一个标签文件中。Vim 可以通过它来从任何地方跳转到该标签,也就是一个标识符被定义的地方。 在当前目录下为所有的 C 文件生成标签文件,使用下面的这个命令:ctags *.cctags 是一个独立的程序。大多数 Unix 系统上都已经安装了它。如果你还没有安装,可以在这里找到 Exuberant ctags: 现在你可以使用下面的命令跳转到一个函数定义的地方: :tag startlist这个命令会找到函数 startlist,即使该函数是在另一个文件中。 CTRL-] 命令会跳转到当前光标下单词的标签。这样浏览毫无头绪的 C 代码会变得更容些易。举个例子,假设你在函数 write_block 中。你可以看到它调用了函数write_line。但 write_line 做了什么呢?将光标置于调用 write_line 的地方然后按 CTRL-],你就跳转到了这个函数的定义的地方了。 write_line 函数调用了 write_char。你需要知道它做了什么。将光标定位到调用 write_char 的地方然后按 CTRL-],你就到了定义write_char 的地方。 +-------------------------------------+ |void write_block(char **s; intcnt) | |{ | | int i; | | for (i = 0; i cnt; ++i) | | write_line(s[i]); | |} | | +-----------|-------------------------+ | CTRL-] | | +---
文档评论(0)