2013-11-21 140 views
10

我通常在Linux环境(ubuntu)中使用emacs开发,因为我喜欢编辑器。我一直在使用eclipse,但是我发现它很慢。Emacs,cedet和C++/C++ 11支持

因为我想要类似于IDE的功能,所以我尝试设置cedet,它似乎有点像做这项工作。

  1. 我发现cedet从来没有找到基类成员。例如,gcc中的std::vector在其基类中有std::vector::size,并且找不到它。
  2. 看起来不准确:如果我做了类似“myvector.”的事情,它会给我完成像size_type
  3. 从C++ 11不能使用auto,它似乎不工作。
  4. 即使对于基本用法,srecode-getset也会出现错误。

我的配置没有给出任何错误,并且基于alexott cedet config

我的问题是:

  1. 完成是不准确的还是? (想想 “vector.” 给像 “size_type”。
  2. 什么是CEDET对于C++状态/ C++ 11?应该自动地工作?我做错什么?

我试着提前使用来自BZR库都捆绑Ubuntu的版本和最后版本。CEDET似乎是一个非常有用的工具,但我不知道它需要更多的工作。

感谢。

+0

虽然它可以做很多事情,但CEDET仍然需要很多工作,特别是对于C++,因为它只是它支持的语言之一,可能是最复杂的一种语言。如果有野牛和elisp知识的人贡献更多,这将是伟大的 。 –

+0

我不知道野牛,不幸的是:-(但是更准确的说,这将会非常棒。 –

+2

我开发了使用CEDET的'https://github.com/abo-abo/function-args' 我很想拥有对C++默认函数参数的支持,但是 这个还没有实现。 –

回答

0

我知道这可能是一个less-没有足够的答案(我想在评论中提到这点,但我很害羞),但是有一个Ecli用于emacs功能的pse插件,名为emacs +。这个link应该对你的Eclipse安装管理器很友好(在Indigo上我可以将它复制并粘贴到帮助 - >安装新软件 - >工作中)。因为Eclipse对你来说很有吸引力,所以这可以间接缓解你的问题...

+0

好吧,我以前试过,但不是近emacs,不幸的是,只有几个组合,但不是真正的感觉不移动到鼠标,这对我来说是一个重要的点 –

+0

有很多编辑器的选择都不需要将手移动到鼠标上,每个编辑器都有自己的组合和功能。就我个人而言,我认为任何编辑器都可以不支持块标记(而不是字符串标记)的憎恶。 vi,Kedit,X2,THE,SlickEdit等。我甚至有日食大多是免费的鼠标。 –

2

而不是依靠CEDET来完成,你可能想考虑一个Emacs中的替代完成提供者。

Auto-complete-clang和auto-complete-clang-async都可以使用clang来获得完成并使用自动完成软件包来显示它们。 Company-clang类似,但使用公司包显示完成。

C,C++和ObjC还有一个小模式叫做irony,它使用clang获取完成,并可以使用多个前端来显示完成。这可能有最好的文件来建立它。

所有这些都可以在Marmalade与包管理器使用在Emacs 24

+0

CLang和LLVM不像免费言论中的“免费”。他们可能很重要。 – Makketronix

0

size_type实际上是vector成员类型,所以这并不像听起来那样疯狂。当然,语法是myvector::size_type,而不是句号。