2013-09-26 32 views
1

我想了解一个c源代码,我在cygwin上使用emacs。当我搜索时,我想出了ctags。我试图通过emacs和cygwin来指导如何使用它,但我无法实现它。ctags for c项目与emacs和cygwin

我是新来的所有这些东西。 任何人都可以解释一个非常简单的ctags与Emacs和cygwin的用法来找到c源代码中的一些定义。

需要一步步例如,预先感谢您

+0

如果系统没有限制,那么安装Linux(~30分钟)的时间比在cygwin下学习代码的开销*要少很多。 –

+0

但是,我必须坚持当前的sytsem,Windows 7上的cygwin。 – arslan

回答

2

这里有一个快速启动:

开始通过让CTAGS扫描您的代码。

在命令提示符下,执行以下操作

  1. 转到你的树的根目录
  2. 执行ctags -e -R *扫描所有的代码在你的树和产生'标记的文件

    • -e说产生的Emacs兼容输出
    • -R说吨Ø递归目录
    • *说扫描一切

在Emacs

使用标签所有这些,如果系统提示您“访问代码表”,与位置回复您在上面创建的标签文件。

  • 要找到某个标签:<M-.>你会被提示输入标签 发现。
  • 要列出符合图案的标签(apropos)请按<M-x>tags-apropos<ret>并提供您正在查找的正则表达式。
  • 要在每个文件中搜索标签的所有发生,请按<M-x>tags-search<ret>并提供标签的名称。

注:

  • <M-x>表示按所述元键(Alt键在PC上),同时按小写字母x。 (大写还有别的东西。)
  • <M-.>表示在按期间按下元键(PC上的Alt)。
  • <ret>手段,按返回(或回车键)

例子在Emacs的

比方说,我想弄清楚的是拥有当前日期的变量定义是什么。我记得它有“约会”的一部分,但我不知道整个名字。为此,我将通过使用tags-apropos命令来查找变量的正确名称,以查找其中包含“日期”的所有标签。所以我输入以下内容:

<M-x>tags-apropos<ret>date<ret> 

我现在得到每个包含日期的标记的列表。在那里,我找到一个名为'currentDate'的标签。现在我需要找到定义的位置,所以我输入

<M-.>currentDate<ret> 

很酷,我找到了。但我仍然希望找到它在代码中使用的任何地方。这可以使用标签搜索:

<M-x>tags-search<ret>currentDate<ret> 

Emacs现在开始搜索文件。当它发现第一次出现'currentDate'并为我突出显示时。要移至下一个出现位置,我按<M-,>

更多信息

有关Emacs中使用标签的详细信息,您可能希望看到Tags section of the GNU Emacs Manual

+0

非常感谢。这正是我所寻找的,清楚地解释了很多事情。我总是有这些命令的问题,现在我知道它是如何工作的。 – arslan

+0

标签-apropos 在这个命令中,apropos是什么?这个命令意味着按下Metakay,同时输入你想要查找的字符串:string-apropos,然后点击Enter。我对吗?我做到了,但没有任何回应 – arslan

+0

@alim'apropos'表示查找包含您指定模式的单词。我已经添加了一个不同命令一起使用的简短示例,以及指向标签上其他文档的指针。 – jwernerny