`

emacs中使用semantic实现c代码自动完成功能

阅读更多

环境:

windows xp

emacs 23 自已编译的cvs版

cedet cvs版(当前的1.0pre4提示的速度太慢了,cvs中的提示出现速度飞快)

 

配置过程备忘:

1.下载cvs版cedet

cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P cedet

 

2.编译cedet

在windows中用emacs来编译cedet。在emacs中打开cedet-build.el

M-x eval-buffer
M-x cedet-build-in-this-emacs

编译cedet。

 

3.按照INSTALL中的配置来加载CEDET

;; Load CEDET
(load-file (concat site-lisp-path "/cedet/common/cedet.el"))

;; Enable EDE (Project Management) features
(global-ede-mode 1)
;; Enable EDE for a pre-existing C++ project
;; (ede-cpp-root-project "NAME" :file "~/myproject/Makefile")


;; Enabling Semantic (code-parsing, smart completion) features
;; Select one of the following:

;; * This enables the database and idle reparse engines
(semantic-load-enable-minimum-features)

;; * This enables some tools useful for coding, such as summary mode
;;   imenu support, and the semantic navigator
(semantic-load-enable-code-helpers)

;; * This enables even more coding tools such as the nascent intellisense mode
;;   decoration mode, and stickyfunc mode (plus regular code helpers)
;; (semantic-load-enable-guady-code-helpers)

;; * This enables the use of Exuberent ctags if you have it installed.
;; (semantic-load-enable-all-exuberent-ctags-support)

;; Enable SRecode (Template management) minor-mode.
;; (global-srecode-minor-mode 1)

 

4. 配置头文件,这一步比较关键,配置不正确则不会出现提示,这里我没有直接使用"/",在windows下试了这个似乎不能用,下面是我的配置的一部分:

(add-to-list 'semanticdb-project-roots "e:/devel/gtk")

(global-semanticdb-minor-mode 1)
(semantic-add-system-include "d:/cygwin/usr/include/" 'c-mode)
(semantic-add-system-include "d:/cygwin/usr/include/" 'c++-mode)
(semantic-add-system-include "d:/GTK/include/" 'c-mode)
(semantic-add-system-include "d:/GTK/include/gtk-2.0/" 'c-mode)
(semantic-add-system-include "d:/GTK/include/glib-2.0/" 'c-mode)

 

我的配置产生的~/.semanticdb如下:

!drive_d!GTK!include!glib-2.0!glib!semantic.cache*
!drive_d!GTK!include!glib-2.0!gobject!semantic.cache*
!drive_d!GTK!include!glib-2.0!semantic.cache*
!drive_d!GTK!include!gtk-2.0!gdk!semantic.cache*
!drive_d!GTK!include!gtk-2.0!gdk-pixbuf!semantic.cache*
!drive_d!GTK!include!gtk-2.0!gtk!semantic.cache*
!drive_d!cygwin!home!zhujie!.emacs.d!semantic.cache*
!drive_d!cygwin!usr!include!machine!semantic.cache*
!drive_d!cygwin!usr!include!semantic.cache*
!drive_d!cygwin!usr!include!sys!semantic.cache*
!drive_d!emacs!site-lisp!cedet!semantic.cache*
!drive_e!devel!gtk!simple!semantic.cache*

 

5.配置快捷键,我的提示快捷键定义到了c-enter上

(require 'semantic-sb nil t)
(when (require 'semantic-ia nil t)
;  (global-set-key [(control return)] 'semantic-ia-complete-symbol)
  (global-set-key [(control return)] 'semantic-ia-complete-symbol-menu)
  )

 

效果图:

emacs semantic

 

 

  • 大小: 50.5 KB
2
0
分享到:
评论
1 楼 dennis_zane 2008-11-26  
回家试下,很cool

相关推荐

    emacs C语言配置示例图片

    本主题的“emacs C语言配置示例图片”提供了几个关键功能的截图,帮助用户理解如何在Emacs中高效地编写和调试C代码。 1. **C语言开发环境设置**:Emacs通过其内置的`CEDET`(C/C++ Development Environment Tools)...

    emacs 配置,cedet

    记得在完成后保存设置到.emacs或.init.el文件,以便每次启动Emacs时自动加载。 ECB(Emacs Code Browser)是另一个重要的辅助工具,它提供了一个集成的代码浏览界面,可以显示类、函数、变量的层次结构,帮助开发者...

    emacs配置IDE

    2. `AUCTeX`: 这是Emacs中用于LaTeX写作的强大工具,它提供了自动完成、错误检查、预览等功能,极大地简化了LaTeX文档的编写过程。 3. `CEDET`: 这是一套集成开发工具,包括源码分析、自动完成、重构等功能。其中,...

    my-lisp-emacs-23.2

    6. **yasnippet-0.6.1c**: Yasnippet是Emacs的一个模板系统,可以创建和使用代码或文本片段。它允许用户定义模板,根据触发词快速插入预先定义的代码块,对于编写重复性代码非常有用。 这些组件都位于`site-lisp`...

    emacs 编程相关perl

    `semantic`子模块则能帮助理解Perl代码结构,提供代码跳转和自动完成功能。 Emacs 还有`elpa`(Emacs Package Archive),这是一个丰富的插件仓库,包含了许多针对Perl开发的扩展。比如`paredit`可以帮助用户更好地...

    emacs-23.2-bin-i386 含cedet,auto-complete,doxymacs,yasnippet,cscope,ecb

    首先, Cedet(Code Environment Development Environment Tools)是一套集成开发环境(IDE)的工具集,为Emacs提供了代码导航、重构、自动完成和项目管理等功能。Cedet的核心组件包括 Semantic,用于源代码分析;...

    cedet-1.0&ecb-2.32

    Cedet是一个集成开发环境的工具集,它提供了多种功能来提高开发效率,如代码导航、自动完成、重构支持和项目管理等。在Emacs 23.2.1版本中,Cedet-1.0提供了以下核心组件: 1. ** Semantic**: 这是一个强大的源代码...

    cedet-1.1.tar.gz

    在这一版本1.1中,Cedet提供了多种工具和模块,帮助开发者提高生产力,尤其是对于编写代码时的自动完成、语法检查、项目导航等方面。 首先,Cedet的核心组件之一是 Semantic,这是一个源代码分析引擎。Semantic能够...

    cedet-1.0pre7.tar.gz

    1. ** Semantic **:这是一个代码分析工具,可以理解源代码的结构,提供自动完成、跳转到定义、查找引用等功能,支持多种编程语言,如C、C++、Java、Python等。 2. ** EDE(Emacs Development Environment)**:...

    semantic-php:EmacsPHP 5 Wisent语法

    该实验软件包包含一个语法,该语法使Emacs能够从php模式缓冲区中提取信息,并提供项目导航功能和自动完成功能。 目的是研究编写标记解析器的不同方法,以及其用于编写PHP重构工具的方法。 这不是用于检查解析错误的...

Global site tag (gtag.js) - Google Analytics