【问题标题】:Eclipse Style Function Completions in Emacs for C, C++ and JAVA?C、C++ 和 JAVA 的 Emacs 中的 Eclipse 样式函数完成?
【发布时间】:2010-09-12 20:33:39
【问题描述】:

如何在 Emacs 中为 C、C++ 和 JAVA 获取 Eclipse 风格的函数补全? 我喜欢 Emacs 文本编辑器的强大功能,但缺少“智能感知”功能 让我使用 Eclipse。

【问题讨论】:

    标签: emacs autocomplete intellisense


    【解决方案1】:

    auto-complete-clang 是你想要的。使用实际的 C++ 编译器进行补全不会出错。

    它唯一的问题是无法知道将哪些-I-D 标志传递给编译器。有一些 emacs 包可以让你声明项目,然后你可以使用它。

    就个人而言,我将 CMake 用于所有 C 和 C++ 工作,因此我编写了一些 CMake code 以通过目录局部变量将该信息传递给 emacs。它可以工作,但我正在考虑编写一个从 emacs 调用 cmake 的包,以便减少入侵。

    【讨论】:

      【解决方案2】:

      CEDET 包为 C/C++ 和 Java(以及一些其他语言)提供了补全。要进行初始自定义,您可以使用我用于处理 C++ 项目的my config

      【讨论】:

        【解决方案3】:

        我在 CEDET 之上编写了一个特定于 C++ 的包,它可能提供 你想要什么。它提供了一个类似 Eclipse 的函数参数提示。 函数参数提示都支持重载函数 并完成。 包位于此处:

        https://github.com/abo-abo/function-args

        请务必查看漂亮的屏幕截图:

        https://raw.github.com/abo-abo/function-args/master/doc/screenshot-1.png

        【讨论】:

          【解决方案4】:

          现在,我在 Emacs 中使用 Auto Complete。作为当前的 Visual Studio 和前 Eclipse 用户,我可以说它可以很好地与这两个应用程序相媲美。它仍然不如 Microsoft 的 IntelliSense for C#,但有人会说 C++ 是出了名的难以解析。

          它利用了(我相信)来自CedetSemantic 包的强大功能,与Smart Complete 相比,我发现它使用起来感觉更好。完成了C++成员、局部变量等,很不错。但是,它归结为无法完成重载方法(它只显示一次没有参数的函数,但我相信这是 Cedet 的限制),以及其他各种事情。不过以后可能会改进!

          顺便说一句,我在这里可能是错的,但我认为您需要设置一个 EDE 项目才能使班级成员完成工作(就像您通常使用 Semantic 一样)。我只在进行 EDE 项目时使用过它,所以我认为这是真的。

          【讨论】:

            【解决方案5】:

            当我做java开发时,我曾经使用过:

            Java Development Environment for Emacs (JDEE)

            当您显式调用 jdee 提供的函数时,JDEE 将提供方法名称补全。它在 jdee-mode 中具有此功能的键盘绑定。

            【讨论】:

              【解决方案6】:

              M-/ 是基于当前缓冲区内容的快速而肮脏的自动完成。它不会为您提供 Eclipse 中的所有功能,但功能却出奇的强大。

              【讨论】:

              • 不要忘记将 M-/ 绑定到 'hippie-expand 提供了更多的补全可能性。
              【解决方案7】:

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

              M-x 加载库完成 M-x 全局设置键 C-RET 完成 RET

              【讨论】:

                【解决方案8】:

                在网上搜索我发现 http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7 在 etags 中描述 complete-tab。默认绑定到M-Tab。这个绑定对你来说可能是个问题

                另外,etags 有一些限制,可能会惹恼你...

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

                【讨论】:

                  【解决方案9】:

                  你试过 eclipse 的 emacs 插件吗?

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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-10-14
                    • 2021-08-28
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-01-18
                    • 2011-08-13
                    • 2014-09-18
                    相关资源
                    最近更新 更多