我正在使用CEDET 1.1运行Emacs 23.3.1.该命令semantic-complete-jump-local总是返回"No Match"时semantic-complete-jump工作正常.
我调查了semantic-complete.el但是我对elisp的了解并不足以理解发生了什么......
从我从文档中可以看出,语义通过在您访问它们时分析每个文件(可能还有它的邻居)来慢慢建立项目中的内容.这太慢了.我想让它访问我项目中的所有文件.是否有捷径可寻?在我能够获得体面的自动完成工作之前,必须访问数百个文件似乎很疯狂.
我还生成了一个etags文件.我能以某种方式利用它吗?
相关信息:Windows上的Emacs,版本23.2.1
我已经使用CEDET 1.0和ECB 2.40设置了emacs 23.1.50.1(受到Alex Otts设置的极大启发,位于http://github.com/alexott/emacs-configs/blob/master/rc/emacs-rc-cedet.el和他对Cedet的热情介绍(http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html),谢谢Alex).它工作得很好,但我需要更多地了解在处理多个项目时如何处理代码完成和符号引用.
我创建了一个简单的ede项目,如下所示:
(ede-cpp-root-project "test"
:file "~/src/sw/anchor"
:include-path '("/Common")
:system-include-path '("~/include"))
Run Code Online (Sandbox Code Playgroud)
加载此项目时,Semantic是否仅在项目配置中指定的各个目录中查找完成?
我按照http://mmmyddd.freeshell.net/blog/Computer/Emacs/usecscopesemanticdbbackend使用cscope作为semanticdb的后端.我可以在没有emacs抛出任何错误的情况下运行semanticdb-enable-cscope-in-buffer,但我不知道语义是否使用了我的数据库.我是否可以在项目定义中添加对cscope.out的引用,以便更好地控制在当前上下文中搜索引用的文件?
有几个古怪的东西:
当我尝试打开一个新的源文件时,我收到错误"apply:Searching for program:no such file or directory,global",没有任何反应.如果我再试一次,一切都很好.
当我尝试通过指向锚文件加载项目时,我收到此错误:"if:Wrong type argument:class-p,ede-cpp-root"
我正在使用emacs 23.3
我听说emacs 23.3默认包含cedet
但我该如何使用它们?我该如何更改我的".emacs"文件...
当我编辑c或cpp文件?
(以及任何关于cedet功能的建议?)
我想使用EDE(来自CEDET)来处理我的一些C++ - 基于cmake的项目.我找到了一些可能的信息.但是,从现有的源文件和cmake文件创建新项目的最佳方法是什么?
使用Emacs 24.3.1和ECB 2.40运行Ubuntu 12.10.除了我几天前运行的apt-get update && upgrade之外,我不知道究竟是什么引起了这种情况.
它开始时,我重新启动计算机,然后运行Emacs并执行MX ecb-activate我会收到以下错误:
ECB 2.40 - 错误:ECB只能与cedet [1.0pre6,1.1.9]一起使用!请安装它并重新启动Emacs!
我尝试了几件事,但还没弄清楚究竟是什么导致了这个问题.几天前我做了一个apt-get update &&升级IIRC,它确实更新了一堆软件包,所以这是可能的.我运行MX cedet-version并获得:
CEDET Version: 2.0
Requested File Loaded
Package Version Version Version
----------------------------------------------------------
cedet: 2.0 nil ok
eieio: 1.4 nil ok
semantic: 2.2 nil ok
srecode: 1.2 nil Not Loaded
ede: 1.2 nil Not Loaded
speedbar: 1.0.4 nil 1.0
cogre: 1.2 nil Not Loaded
cedet-contrib: 1.2 nil Not Loaded
Run Code Online (Sandbox Code Playgroud)
关于这里发生了什么的任何想法?
我的emacs版本是23.2.1虽然我使用以下内容来更改后端以使用GTAGS.(需要'semantic/db-global)(semanticdb-enable-gnu-global-databases'c-mode)(semanticdb-enable-gnu-global-databases'c ++ - mode)我试着生成一个GTAGS文件用作语义的后端.但是,每次打开C文件时,Semantic仍然在不使用GTAGS文件的情况下解析文件.
是否可以使用GTAGS文件而不是内置的语义解析器?我发现内置的解析器不是很准确.
是否可以在不指定项目范围的情况下使用GTAGS文件?在我的情况下,我试图将GTAGS文件放在/ usr/include中,这应该是emacs的标准包含路径.但是语义学并没有使用它.
如何在不破坏语义和自动完成的情况下集成SCons和emacs + cedet?
我一直在尝试为C++设置一个EDE项目(emacs24 +内置CEDET),我开始变得绝望,因为我似乎无法找到我希望生成makefile的方式.我对Emacs比较陌生.我会试着描述一下我在做什么:
我有一个像这样的玩具项目:
main.cpp
other/
Utils.cpp
Utils.h
CGrabBuffer.cpp
CGrabBuffer.h
Run Code Online (Sandbox Code Playgroud)
main.cpp在"other /"目录中包含.h's.以下是使用此简单目录设置设置EDE项目的步骤:
M-x ede-new; 类型:Make; 姓名:main-proj.M-x ede-new; 类型:Make; 姓名:aux-proj.M-x ede-new-target; 名称:main; 类型:program.出现提示时,我将main.cpp添加到此目标.M-x ede-customize-current-target所有三个目标,然后添加一些包含路径,一些库等.M-x ede-compile-project它不会编译,因为:
正如你所看到的,我正处于一团糟之中.也许我甚至不理解EDE中"目标"的含义.我还读到了ede-cpp-root-project的存在,它必须在.emacs文件中指定.我没有尝试过,因为我认为它只是帮助语义.它不会生成Makefile,是吗?我是否可以(或者我需要)使用Project.el构建的EDE项目和使用ede-cpp-root-project进行语义相同的事情?还是多余的?
抱歉,如果我误解了很多东西,但我很困惑,对emacs不熟悉会让事情变得更糟.谢谢你的耐心!
编辑:通过一些修补和我收到的回复,我已经能够找出很多东西,所以非常感谢.我还不明白的是使用ede-cpp-root-project,它必须在.emacs文件中指定.它只是用于c ++语义吗?使用Project.el的项目和.emacs中的elisp行是否是多余的?
M-x ede-new-target询问目标类型,虽然目标类型有点自我解释,但我并不是100%清楚如何使用它们.例如,我假设一个"程序"目标是代码文件,但杂项呢?EDE手册中的示例将其用于头文件,但是还可以放入其他内容吗?什么是共享对象目标?等等
似乎没有任何好的文档在任何地方,所以可以somone请描述这些目标类型的用途?
cedet ×10
emacs ×10
c++ ×3
autocomplete ×1
cscope ×1
emacs-ecb ×1
etag ×1
gnu-global ×1
intellisense ×1
scons ×1