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

28 emacs

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

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

dar*_*ioo 25

嗯,它比那更多参与.

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

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

我建议阅读Emacswiki关于标签的文章,以便更好地理解这个功能.

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

  • 同样值得一提的是组合“ M- *”,它将使您返回到起点(使用“ M-。”的点)。您可以递归使用。 (3认同)

Jac*_*ack 11

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

现在Dumb Jump基本支持:

  • JavaScript的
  • Emacs Lisp
  • 蟒蛇
  • PHP
  • 红宝石
  • 浮士德
  • 还有更多...(现在超过20个)

它可以通过MELPA获得,并且正在积极开发中.


Pra*_*kla 7

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

  • [Emacs 标签文章](https://www.emacswiki.org/emacs/EmacsTags) 和 [标签文件文章](https://www.emacswiki.org/emacs/TagsFile#tags_file) 提供了有关此的更多信息命令,请注意,您需要让 emacs 创建 TAGS 文件,例如。从命令行使用“etags mycodefile.c”。 (4认同)
  • 我这应该是正确的答案,我还错误地发现了该命令:)) (3认同)

Nat*_*ons 5

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

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