如何在Emacs中为C,C ++和JAVA获取Eclipse样式函数完成? 我喜欢Emacs文本编辑器的强大功能,但缺乏“intellisense”功能 让我使用Eclipse。
答案 0 :(得分:18)
M-/
是基于当前缓冲区内容的快速且脏的自动完成。它不会为您提供Eclipse中的所有功能,但功能却非常强大。
答案 1 :(得分:8)
我只能回答你的问题,因为他没有多少使用Eclipse。但!如果对您在emacs缓冲区中输入或查看的所有进行了非常好的快速启发式分析,并且您在所有地方完成智能完成,而不仅仅是在代码中?
M-x load-library completion M-x global-set-key C-RET complete RET
答案 2 :(得分:7)
当我在进行java开发时,我曾经使用过:
Java Development Environment for Emacs (JDEE)
当您显式调用jdee提供的函数时,JDEE将提供方法名称完成。它在jdee-mode中具有用于此功能的键盘绑定。
答案 3 :(得分:6)
答案 4 :(得分:3)
现在,我正在使用Auto Complete用于Emacs。作为当前的Visual Studio和ex-Eclipse用户,我可以说它可以很好地与两个应用程序相媲美。它仍然不如微软的C#IntelliSense,但有些人会说C ++很难解析。
它充分利用了({3}}来自Semantic的Cedet软件包的功能,我发现与Smart Complete相比,它的使用效果更好。它完成了C ++成员,局部变量等。这非常好。但是,它不能完成重载方法(它只显示一次没有参数的功能,但这是我认为的Cedet的限制),以及其他各种各样的事情。它可能在将来有所改善!
顺便说一句,我可能在这里错了,但我认为你需要为类成员完成设置一个EDE项目(就像你通常使用Semantic一样)。我在EDE项目中只使用过它,所以我认为这是真的。
答案 5 :(得分:2)
在网上搜索我在etags中找到了描述complete-tab
的{{3}} 。默认情况下它绑定到M-Tab
。这种绑定可能是你的问题
此外,etags有一些限制,这可能会让你烦恼......
该链接还指向CEDET,因为它具有更好的符号完成支持。
答案 6 :(得分:1)
您是否尝试过eclipse的emacs插件?
http://people.csail.mit.edu/adonovan/hacks/eclipse-emacs.html
答案 7 :(得分:0)
我在CEDET上编写了一个可能提供的特定于C ++的包 你想要什么。它提供了类似Eclipse的函数参数提示。 函数参数提示支持重载函数 并完成。 套餐位于:
https://github.com/abo-abo/function-args
请务必查看精彩的屏幕截图:
https://raw.github.com/abo-abo/function-args/master/doc/screenshot-1.png
答案 8 :(得分:0)
auto-complete-clang就是你想要的。使用实际的C ++编译器进行完成不会出错。
它唯一的问题是无法知道传递给编译器的-I
和-D
标志。有一些emacs包可以让你声明项目然后你可以使用它。
就我个人而言,我使用CMake进行所有C和C ++工作,所以我写了一些CMake code来通过目录本地变量将这些信息传递给emacs。它有效,但我正在考虑编写一个从emacs调用cmake的软件包,这样就可以减少入侵。