跳转到Emacs声明的捷径是什么?

时间:2011-01-21 13:19:37

标签: emacs

在visual studio中,在编辑C / C ++代码时,更容易按F12按钮跳转到函数或变量的声明。

emacs中是否有一个快捷键可以做到这一点?

4 个答案:

答案 0 :(得分:24)

嗯,它比那更复杂。

默认情况下,Emacs不“了解”C或C ++代码的函数声明。首先,获得Exuberant Ctags。然后,在源代码上使用命令etags(用于Emacs的ctags)。将生成名为TAGS的文件。

然后,在编辑源代码时,如果要跳转到声明,请按 M - 。(元和点,或现代键盘上的alt和点)。首先,Emacs会询问您标签文件的位置。将其指向您生成的那个,然后导航将自动进行。

我建议您阅读Emacswiki article about tags以更好地了解此功能。

最新版本的Emacs(23.2)附带CEDET集成,它具有更高级的C和C ++导航功能,但设置起来可能有点困难,所以如果你有更多关于它的内容感兴趣。

答案 1 :(得分:11)

正如其他人所说,在emacs中没有内置的通用解决方案。也就是说,在IntelliJ中使用此功能之后我也想在emacs中使用它,所以我制作了Dumb Jump

现在Dumb Jump基本支持:

  • 的JavaScript
  • Emacs Lisp
  • 的Python
  • 开始
  • PHP
  • 红宝石
  • 浮士德
  • 以及......(现在超过20岁)

可通过MELPA获取,并且正在积极开发中。

答案 2 :(得分:5)

M-。键将带您进入功能定义emacs。

答案 3 :(得分:4)

有多种方法可以做到这一点。正如darioo所提到的,Ctags是一个,但默认情况下它会定义(这可能适合你)。但是,进一步看,您可以看到前缀M-.(即C-u M-.)将带您进入下一个标记匹配(通常是声明)。还有一个--declarations选项,但Exuberant Ctags似乎不支持它。

CEDET是另一种选择,但根据我的经验,它还没有为生产做好准备。在C ++ semantic-ia-fast-jump中,通常会转发声明而不是定义或声明。