Emacs中针对C,C ++和JAVA的Eclipse样式函数完成?

时间:2020-03-06 14:41:00  来源:igfitidea点击:

如何在C,C ++和JAVA的Emacs中获取Eclipse样式函数的完成?
我喜欢Emacs文本编辑器的功能,但是缺少"智能"功能
让我使用Eclipse。

解决方案

我们是否尝试过将emacs插件用于Eclipse?

http://people.csail.mit.edu/adonovan/hacks/eclipse-emacs.html

在网上搜索时,我发现http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7在etag中描述了" complete-tab"。默认情况下,它绑定到" M-Tab"。这种绑定可能对我们来说是个问题

另外,etags有一些限制,这可能会惹恼我们...

该链接还指出CEDET具有更好的符号完成支持。

作为一个很少使用Eclipse的人,我只能回答问题。但!如果对我们在emacs缓冲区中键入或者查看的所有内容进行了非常不错的快速启发式分析,并且不仅在代码中,而且在所有地方都获得了智能完成,那该怎么办?

M-x load-library completion
M-x global-set-key C-RET complete RET

根据当前缓冲区的内容," M- /"是一种快速而肮脏的自动完成功能。它不能提供我们在Eclipse中获得的所有功能,但功能却令人惊讶地强大。

在进行Java开发时,我曾经使用过:

Emacs Java开发环境(JDEE)

当我们显式调用jdee提供的函数时,JDEE将提供方法名称完成。它在jdee模式下具有用于此功能的键盘绑定。

CEDET软件包为C / C ++和Java(以及某些其他语言)提供了完成功能。要进行初始自定义,我们可以使用我用来处理C ++项目的配置

现在,我正在为Emacs使用自动完成功能。作为当前的Visual Studio和前Eclipse用户,我可以说它可以很好地与两个应用程序匹敌。它仍然不如Microsoft的C#IntelliSense,但有人会说C ++很难解析。

它利用了Cedet的语义包的功能(我相信),与Smart Complete相比,我觉得使用它感觉更好。它完成了C ++成员,局部变量等。这非常好。但是,它归结于无法完成重载的方法(它只显示一次不带参数的函数,但我相信那是Cedet的局限性)以及其他各种事情。将来可能会改善!

顺便说一句,我在这里可能是错的,但是我认为我们需要建立一个EDE项目来使类成员完成工作(就像通常使用Semantic一样)。我只在拥有EDE项目时才使用过它,所以我认为这是对的。