安装和配置
1.首先,在系统中安装Cscope。Linux下,安装软件的方式通常有两种:
方式一:下载Cscope的源代码,按照源码包中的INSTALL说明文件,执行下面的命令进行配置编译安装
./configure make make install |
Cscope的源码包里面有个xcscope.el文件,为(X)Emacs提供了Cscope 接口。它处于源码包的 contrib/xcscope 目录下。该目录下面还有一个名为cscope-indexer的脚本文件,用于创建文件列表和数据库。
方式二:利用linux发行版的软件管理工具进行安装。我使用的是Jaunty Jackalope(Ubuntu 9.04),只要一条命令,解决所有问题。
sudo apt-get install cscope |
安装后,cscope-indexer脚本位于/usr/bin目录下,xcscope.el被置于emacs默认的load-path下,在我的系统中是/usr/share/emacs/site-lisp。
2.为了能够执行cscope-indexer脚本,需要将它放到PATH变量指向的文件夹下,如/usr/bin,并确认该脚本具有执行权限。
3.把xcscope.el文件放到系统用户的load-path下。为系统用户创建文件夹并将其加入load-path的方法是:先创建文件夹,
mkdir -p ~/.emacs.d/site-lisp/ |
然后,在emacs的配置文件~/.emacs中添加
;;LOAD_PATH (add-to-list 'load-path' "~/.emacs.d/site-lisp") |
如果没有该文件,请手动创建。
4.在.emacs文件中加入下面的语句
(require 'xcscope)
这里以内核源码为例,介绍Cscope的基本用法。
1.首先,在源码根目录下,如~/kernerl/linux-2.6.29.3,利用cscope-indexer脚本生成文件列表和数据库,方法是执行
cscope-indexer -r |
-r参数表示递归检索子目录,文件列表和数据库的默认文件名分别为cscope.files和cscope.out,可以使用-i,-f参数进行修改,请参考man了解脚本参数用法。
2.激动人心的时刻到了。用emacs打开init/main.c,C-s搜索sched_init函数,将光标停在函数名上,按C-c s d或者先前设置的Ctrl+F6,回车进行查找。结果居然用了35.32秒,汗!原来,Cscope默认在每次进行查找时更新cscope.out。当工程十分庞大时,建议关闭该选项以提高查找速度。方法是在~/.emacs文件中加入
(setq cscope-do-not-update-database t)
emacs是个强大的编辑器.在linux/unix下有广泛的使用群体.它既可以当做文字处理软件.也可以作为集成开发环境来用.很多人用emacs编 程序的时候只用到了内置的一些模式.其实emacs有个很好的集成开发环境ecb.安装之后可以让emacs有类似VS的样子.和自动补全等诸多功能.本 文会指导你在emacs下安装ecb和cedet.
我其实很懒的.如果网上能找到我也不会写出来了.如何在emacs下安装ecb和cedet的中文文章确实很少.所以我来写一篇.本文内容都可以在.
ecb http://ecb.sourceforge.net/
cedet http://cedet.sourceforge.net/
网站上找到.但都是英文的.而且很罗嗦.我这个是精简版.如果还有安装问题.以上面两个网站的内容为主.
ecb的主要功能是图形界面.有好几种模式可选
cedet里面又有好几个包semantic是语法分析.eieio是面向对象设计的工具等等
本文目的:
指导安装ecb和cedet,搭建c,c++,lisp的开发环境
前提:
你有个linux或unix系统.
GNU emacs
如果你不能满足这俩个条件,请现安装一个linux发行版.并且安装emacs.
先下载这两个软件的安装包
ecb http://ftp1.sourceforge.net/ecb/ecb-2.32.tar.gz
cedet
http://sourceforge.net/project/showfiles.php?group_id=17886&release_id=513873
然后
tar zxvf ecb-2.32.tar.gz
tar zxvf cedet-1.0pre4.tar.gz
cd cedet-1.0pre4
make
等cedet生成完毕
在你的用户目录下面应该有一个.emacs文件(前面有个点).这个文件是emacs的配置文件.现在我们要改这个文件(如果没有就自己创建一个).添加下面一段.注意,load-file那一行的目录要自己改一下
;; Load CEDET
(load-file "你存放cedet的目录/common/cedet.el")
;;我的是(load-file "~/cedet-1.0/common/cedet.el")
;; Enabling various SEMANTIC minor modes. See semantic/INSTALL for more ideas.
;; 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 turns on which-func support (Plus all other code helpers)
;; (semantic-load-enable-excessive-code-helpers)
;; This turns on modes that aid in grammar writing and semantic tool
;; development. It does not enable any other features such as code
;; helpers above.
;; (semantic-load-enable-semantic-debugging-helpers)
这样cedet就装好了
接下来安装ecb
在.emacs里面加入
(add-to-list 'load-path "你放ecb的目录")
;;例如(add-to-list 'load-path "~/.emacs.d/ecb-2.32")
(require 'ecb)
注意这个段要加在cedet配置的后面
重启emacs
在emacs中打开一个c或者c++文件.选tool中的
Start Code Browser(ECB)
呵呵,看看有什么变化吧.
ecb和cedet都有多得吓人的功能.具体请看M-x ecb-show-help 和cedet包里面的install文件.
解释
;;;添加插件
(add-to-list 'load-path "ecb安装的目录")
(require 'ecb)
;;;; 自动启动ecb,并且不显示每日提示
(setq ecb-auto-activate t
ecb-tip-of-the-day nil)重新启动Emacs,就可以看到ECB提供的四个窗口。这时候,可以在Emacs执行“M-x ecb-byte-complie”编译,加快ECB的运行速度。